日期:2014-05-16 浏览次数:20624 次
<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>