日期:2014-05-16 浏览次数:20557 次
<script language="javascript"> var Field001=34992.5; var Fidle002=0.03; document.write(eval(Field001*Fidle002).toFixed(3)); confirm((Field001*Fidle002).toFixed(3)); alert(Field001*Fidle002); </script>
------解决方案--------------------
根据微软提供的JScript 语言参考 ,上面提到:
"数值数据类型
在 Jscript 中整数和浮点值没有差别;JScript 数值可以是其中任意一种
(JScript 内部将所有的数值表示为浮点值)。"
这下应该够清楚了吧.
所以还是建议根据实际需要保留精度吧!
中间参与计算的数都取浮点值,只在最后将所需结果取精度,
这样可以将误差值降到最小.
<script language="javascript"> var Field001=34992.5; //你提供的被除数 var Fidle002=0.03; //你提供的乘数 var Result001=Field001*Fidle002; //直接乘得1049.7749999999998 var Result01=Result001.toFixed(3); //返回字符串得1049.775 alert(typeof(Result01)+':'+Result01); //弹出结果:"字符型:1049.775" Result01=parseFloat(Result01); //转为数值类型:1049.775 alert(typeof(Result01)+':'+Result01); //弹出结果:"数值型:1049.775" </script>