为什么在声明浮点数时需要“ f”?

为什么在声明浮点数时需要“ f”?,第1张

为什么在声明浮点数时需要“ f”?

您的浮动声明包含两个部分:

  1. 它声明变量
    timeRemaining
    的类型为
    float
  2. 它将值分配
    0.58
    给此变量。

该问题出现在第2部分中。

右侧将自行评估。根据C#规范,包含不带后缀的小数点的数字将解释为

double

因此,我们现在有了一个

double
要分配给type变量的值
float
。为此,必须存在从
double
到的隐式转换
float
。没有这种转换,因为您可能(在这种情况下确实)会在转换中丢失信息。

原因是编译器使用的值不是真正的0.58,而是最接近0.58的浮点值,对于来说恰好是0.57999999999999978655962351581366
…对于

double
和恰好是0.57999994605757796478271484375
float

严格来说,

f
不需要。您可以
f
通过将值强制转换为来避免使用后缀
float

float timeRemaining = (float)0.58;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5440886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存