![]() |
1
4
您可以转换
或者,或者,
但是,您将无法从
这个
一旦将变量更改为
|
![]() |
2
2
如果您需要提供
表现
如果是浮点数,则应使用
这个简单的例子显示了不同之处:
|
![]() |
3
2
让我们来玩玩花车,看看为什么不管用。
假设24位数字1.23456789012345678901234从SQL中读取
浮点值的二进制形式如下:
第一
所以float变量现在用二进制编码数字1.001111000000110010。 让我们看看当我们把这个浮点转换成十进制时会发生什么。
所以如果我们展示 全部的 在浮点数的位数中,我们得到1.234567806304931640625。 这不是我们要显示的号码吗?为什么要四舍五入这个数字?为什么这个值与我们开始使用的数字不同? 要了解原因,让我们逐步了解几个相邻的浮点值:
如您所见,使用完全相同的浮点数表示此范围内的所有值:[1.234567821022584838671875,1.2345679435137939453125) 因此,在转换为浮点数的过程中,第8位之后的任何十进制数字都会丢失,并且可能显示的任何数字都是完全无意义的,与正在表示的实际值无关。 第八位以外的所有十进制数字都是舍入为24位二进制并转换为十进制的伪影,它们没有实际意义。 |
![]() |
4
0
你可以一直使用
例如,上面的格式说明符显示6个小数位。更换
|
![]() |
5
0
你可以用
|
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |