如果需要整数值,并且整型文字将隐式转换为double/float,为什么要使用double或float文字?当需要一个小数时,为什么还要添加f
(使浮点变为文字)其中double将被强制转换为float呢?
例如,我经常看到如下代码
float foo = 3.0f;
double bar = 5.0;
// And, unfortunately, even
double baz = 7.0f;
和
void quux(float foo) {
...
}
...
quux(7.0f);
但据我所知这相当于
float foo = 3;
// or
// float foo = 3.0;
double bar = 5;
double baz = 7;
quux(9);
如果您使用的是一种重载语言(C++,Java),我可以理解方法调用,在这种语言中,如果函数重载(或者将来会重载),它实际上可以对函数产生影响,但我更关心的是C(在较小程度上是Objective-C),它没有重载。
那么,有什么理由去费心使用额外的小数点和/或
f
?尤其是在初始化情况下,声明的类型就在那里? 最佳答案
很多人都很难学会
double x = 1 / 3;
不按预期工作。因此,他们(包括我自己)通过使用浮点文字来防御程序,而不是依赖隐式转换。