Why is the quot;fquot; required when declaring floats?(为什么是“f?声明浮动时需要?)
问题描述
例子:
float timeRemaining = 0.58f;
为什么这个数字的末尾需要f
?
Why is the f
is required at the end of this number?
推荐答案
你的浮点声明包含两部分:
Your declaration of a float contains two parts:
- 它声明变量
timeRemaining
的类型是float
. - 它将值
0.58
分配给该变量.
- It declares that the variable
timeRemaining
is of typefloat
. - It assigns the value
0.58
to this variable.
问题出现在第 2 部分.
The problem occurs in part 2.
右侧是自行评估的.根据 C# 规范,包含没有后缀的小数点的数字被解释为 double
.
The right-hand side is evaluated on its own. According to the C# specification, a number containing a decimal point that doesn't have a suffix is interpreted as a double
.
所以我们现在有一个 double
值,我们希望将其分配给 float
类型的变量.为了做到这一点,必须有一个从 double
到 float
的隐式转换.没有这样的转换,因为您可能(并且在这种情况下确实)在转换中丢失了信息.
So we now have a double
value that we want to assign to a variable of type float
. In order to do this, there must be an implicit conversion from double
to float
. There is no such conversion, because you may (and in this case do) lose information in the conversion.
原因是编译器使用的值并不是真正的 0.58,而是最接近 0.58 的浮点值,即 double
为 0.57999999999999978655962351581366... 而 恰好为 0.579999946057796478271484375>浮动
.
The reason is that the value used by the compiler isn't really 0.58, but the floating-point value closest to 0.58, which is 0.57999999999999978655962351581366... for double
and exactly 0.579999946057796478271484375 for float
.
严格来说,f
不是必需的.您可以通过将值转换为 float
来避免使用 f
后缀:
Strictly speaking, the f
is not required. You can avoid having to use the f
suffix by casting the value to a float
:
float timeRemaining = (float)0.58;
这篇关于为什么是“f"?声明浮动时需要?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么是“f"?声明浮动时需要?
基础教程推荐
- c# Math.Sqrt 实现 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 将 XML 转换为通用列表 2022-01-01