我能够重现你所经历的问题(VBA),而且看起来确实如此
治疗癌症的一个错误
Single
按(特别是)VB IDEs键入
. 也就是说,vbide将不正确地将
默认值为
int
在将其再次打印出来(作为方法签名的一部分)之前,将其作为(截断的)单精度浮点值。
这个问题不存在于
Microsoft 脚本编辑器
OleView.exe
等。
单身
默认值:
18446744073709551615.0
. 在我的例子中,这个值在TLB中正确地编码,并由
通过
Microsoft 脚本编辑器
作为
1.844674E+19
. 但是,它显示为
-2.147484E+09
在vbides中。的确,铸造
(float)18446744073709551615.0
到
内景
生产
-2147483648
float
-2.147484E+09公里
.
50.6
投给
内景
51
,然后打印为
51
.
要解决此问题,请使用
Double
单身
,作为
双倍
已转换并
正确显示
通过我所能测试的所有IDE。
0.1
)没有相应的
准确的
0.1000000015
)因此,指定默认值
双精度
0.1
0.100000001490116
. 缓解精度问题的一种方法是为参数选择不同的刻度(例如,从秒切换到毫秒,因此
秒会变成
100