如果方法的参数调用浮点数,可以简单地传递10而不是10.0吗?我一直这样做,但经常看到指定.0的代码,并且一直在想是否有任何理由这样做。谢谢。
答案 0 :(得分:4)
没有必要,但是当你这样做时,使用正确的类型和/或添加显式的强制转换是个好主意 - 更多用于自我记录的目的而不是其他任何东西。对于文字值,只需将常量指定为例如10.0f
- 对于变量,只使用C风格的类型转换,例如(float)i
。
答案 1 :(得分:4)
编译器通常会将数字强制转换为正确的类型,但明确提升可读性并没有什么坏处。
对于大多数C和C ++编译器,常量值10.0
实际上是double
,而10.0f
是单精度浮点数。如果您将变量传递给函数并且您知道传递的类型是错误的,则使用C表示法(float)i
或C ++表示法float(i)
来强制转换它,具体取决于您的编译器。