1

谁能解释一下为什么下面的结果不等于零?

? CSng("0.199881939681229")
? CSng(0.1998819)
? CSng(CSng(0.199881939681229) - CSng(0.1998819))

第一行返回 0.1998819 第二行也返回 0.1998819 但第三行返回 4.470348E-08

如果两个数字在单精度数据类型中完全由相同的值表示,那么这个数字是从哪里来的。

4

1 回答 1

0

似乎对此的另一个答案已被删除,所以我会自己回复。

VBA 返回 0.1998819 但实际上并没有将两个数字存储为同一个二进制文件。

请参阅http://www.binaryconvert.com/result_float.html?decimal=048046049057057056056049057051057054056049050050057http://www.binaryconvert.com/result_float.html?decimal=04804604905705705605604907

几乎相同但不一样。

谜团解决了,即时窗口中浮动的 VBA 表示是问题所在。

于 2015-07-07T15:47:04.697 回答