注册 登录
编程论坛 VB6论坛

为什么第1个值不等于1,第2个值等于1?

yuma 发布于 2022-10-30 18:34, 1236 次点击
为什么第1个值不等于1,第2个值等于1?
如果你说VB给他四舍五入了,有什么验证方法可以证明吗?

Private Sub Form_Load()
Debug.Print 0.33333333333333 * 3     '值为: 0.99999999999999
Debug.Print "0.3333333333333333" * 3     '值为: 1
End Sub


[此贴子已经被作者于2023-1-10 10:55编辑过]

2 回复
#2
风吹过b2022-10-30 20:46
1、根据ieee754国际标准,常用的浮点数有两种格式
(1)单精度浮点数(single)
(2)双精度浮点数(double)
2、相同点:它们都用来表示带有小数部分的实数,一般都用于科学计算,都由阶码和尾数构成。
3、不同点:
(1)单精度浮点数占用4个字节(32位)存储空间,包括符号位1位,阶码8位,尾数23位。其数值范围为3.4e-38~3.4e+38,单精度浮点数最多有7位十进制有效数字,单精度浮点数的指数用“e”或“e”表示。单精度浮点数有多种表示形式:±n.n(小数形式)
(2)双精度浮点数占用8个字节(64位)存储空间,包括符号位1位,阶码11位,尾数52位。其数值范围为1.7e-308~1.7e+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“d”或“d”表示。双精度浮点数科学记数法格式


然后你点一下你的数据有多少位有效数据,超出了就会自动四舍五入上去。

#3
cwa99582022-10-31 08:15
这两个都不会等于1
1