例子:
float timeRemaining = 0.58f;
为什么这个数字的末尾需要 f
?
最佳答案
您的 float 声明包含两部分:
- 声明变量
timeRemaining
类型为float
. - 它赋值
0.58
到这个变量。
问题出现在第 2 部分。
右侧是自行求值的。根据 C# 规范,包含小数点但没有后缀的数字被解释为 double
。 .
所以我们现在有一个 double
我们要分配给 float
类型变量的值.为此,必须从 double
进行隐式转换。至 float
.没有这样的转换,因为您可能(在这种情况下确实)在转换中丢失信息。
原因是编译器使用的值并不是真正的 0.58,而是最接近 0.58 的浮点值,即 0.57999999999999978655962351581366... 对于 double
和 0.579999946057796478271484375 对于 float
.
严格来说,f
不需要。您可以避免使用 f
通过将值转换为 float
来添加后缀:
float timeRemaining = (float)0.58;
关于c# - 为什么在声明 float 时需要 "f"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519743/