VB计算问题!急呀

来源:百度知道 编辑:UC知道 时间:2024/05/20 04:06:22
问题一:在VB在计算1/3=.333333333333,为什么不是0.3333333333?
问题二:计算1000/323232=3.09375309375309E-03,为什么不是0.0030937530937530937530937530937531
使用Format(x, "0.0000000000")得到的结果是正确的!可我如果10*10,那结果却等于100.0000000000,10*4=2.5000000000,请问如何做到把不要的0去除呢?

第一题如果要写成0.33333333你要用format(数值,"0.00000000")这样就可以了。
第二个就像一楼说的一样,vb当双精度处理了可以将结果再转换为单精度型。或者同理用上面的format函数完成。

对补充意见的建议,你如果不想看到多余的0,可以使用format(数值,"0.########"),这样如果没0就不会添0 了。

1.小数的整数部分如果是0的话,是可以省略不写的,不仅仅是VB这样, EXCEL也可以这么输入, 连大家平时用的计算器都可以这么输入的, 比如0.6+0.5,你可以输入.6+.5就行了

2.这个是计算精度的问题,当一个数的小数部分过长时,VB会使用科学计数的方式,也就是单精度型数值或双精度型数值了..后面的E-03,也就是相当于*10的-3次方,也就是这个数是:0.00309375309375309

请问如何做到把不要的0去除呢?
可以这样!
val(Format(x, "0.0000000000"))
已经经过调试