Sun*_*ung -2 c# floating-point int type-conversion data-conversion
在C#中,要将int转换为float,我们只需要执行类似float floatNumber = intNumber
或者Convert.ToSingle(intNumber)
.但是,当涉及999999999这样的大数字时,系统无法正确转换数字,而是将其转换为不需要的数字1E + 09.现在的问题是,是否可以将该大整数转换为所需的浮点数?
32位浮点数不能精确地表示一个大的整数:它只有24位用于执行此操作(一种是隐式的格式).在24位中,您可以表示16777215. 16777216也适合,因为它是2的幂.999999999不能完全表示为最多24位乘以2的幂的数字.
请参阅SO:https://stackoverflow.com/a/3793950/751579
有关更多信息,请查看IEEE浮点32位和64位格式的详细信息.
归档时间: |
|
查看次数: |
129 次 |
最近记录: |