vb计算为什么会得到这样的结果??

vb计算为什么会得到这样的结果??

不只是科学记数法的问题!
主要是因为计算机中的数字都是以二进制存储的,就会造成维数的误差。
但是,这个误差不想你想象的那么大。
如果是Single类型的数,那么他的影响相对的就比较大了,因为他的第七位就可能是不准确的。
比如你的计算结果,7.80000686645508E-02,其误差就是0.0000000686645508
如果是Double类型的数,其误差一般的15位有效数字的末尾一位。
比如你的计算结果,7.80000000000003E-02,其误差就是就是:0.0000000000000003

这个数字一般的不会影响你的计算结果,但是会影响你的格式化输出结果。使用Format函数的时候要特别注意啊!追问

相减后要得到正确的数字,只能采用format方式么?有没其他办法呀?

追答

只有采用Format函数处理,或者使用Round函数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-14
CSng是转换为 Integer 类型的数据
CDbl 是Double 类型的数据,
计算结果表示的是科学计数法方式,自己可以用 Format(xxx,"#0.00")转换为想要的格式...
如: Text3.Text=Format$(a3,"#0.00")表示保留两位小数追问

假如是中间计算过程,岂不最终结果误差很大???

追答

所以在中间计算的时候最好选择Double 类型的数据进行计算,在最后的时候来处理结果。如:要保留多少位小数...

第2个回答  2013-10-14
其实,使用科学计数法,只要有效位数足够,精度还是很高的。
第3个回答  2013-10-14
科学计数法吧

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网