vuivui
发表于 2015-3-27 13:19:38
也算的不准
Round 结果有时候会= -1.$有时候又不会
我相同的写法,在大点的程序里不编译不会等于-1.$ ...
zhouhaijin 发表于 2015-3-27 10:17 http://www.autoitx.com/images/common/back.gif
au3二进制和十进制计算转换修正不严谨,诸如此类的问题很多,所以财务等需准确数值的运算慎用au3。
小数、指数十进制转换到二进制是个近似值,二进制转换到十进制保留多位小数按理说应该更准确,所以在界面操作诸如窗口位置、大小等计算中是没问题的。
在需有精确数据的场合,办法是单位取大,避免出现小数,因为整数二进制和十进制转换在取值范围内是正确的。比如先乘以100、1000,在最后结果除以100、1000。碰到除数、指数计算出现小数,四舍五入的时机,要跟相关excel等协同处理的软件算法想统一。
简单的方法还是用c编个dll结合au3,c普通计算编程很容易的。不想学c,就用excel结合vba或au3编程,其他很多财务软件都带有编程功能的。
au3是好东西,也不要因为数字计算等问题,就怕用au3。我原来用vb较多,现在基本不用了,c是au3的母语言,就是不学,还是要了解一下的,同在流行的编程语言大多数是类c语言,对转学其他语言好处也很大。pc编程对业余爱好者来说,一般场合用au3对付是较好的选择。