【发布时间】:2011-03-23 22:15:58
【问题描述】:
在我正在处理的代码中遇到了这个问题:
double part2 = static_cast<double>(2) * somthing1
* ( static_cast<double>(1) + something2 )
+ ( static_cast<double>(1) / static_cast<double>(2) ) * something3
+ ( static_cast<double>(1) / static_cast<double>(2) ) * pow ( something4, 3 );
(somethings 是 doubles。)
我怀疑有一个很好的理由去经历这样做的麻烦
static_cast<double>(1)
之类的,但似乎我可以少打很多字。
我不明白什么?
提前致谢。
【问题讨论】:
-
是的,输入
2.0或2.会简单得多。不知道为什么要转换文字。 - 人们可能也有一个错误的想法,即两个操作数需要在二元运算符调用中都是双精度数(一个就足够了)。 -
您始终可以使用短文本:stackoverflow.com/questions/208433/… 并为变量保留显式强制转换。
-
这是一个很好的例子,说明您应该始终编写尽可能简短和简单的代码。如果你不这样做,人们就会开始认为你没有以简单的方式输入是有原因的,他们不敢改变它。
-
@jdv,是的,这正是我的感觉。 :)
标签: c++ casting double static-cast