A. js中如何实现小数的加减
解:加法:加数A+加数B=和C验算:用和减去一个加数,必须等于另一个加数,否则计算错误。C-A=BC-B=A减法:被减数A-减数B=差C验算:用被减数减差,必须等于减数,即A-C=B用减数加上差,和必须等于被减数,即B+C=A
B. JS运算结果取小数点后3位
用 Number.toFixed(x) x 是精确的位数, Number是你的内原数据容
document.getElementById("FpgForm_ZC0000000007340").value = box1 + box
ZC0000000007340").value.toFixed(3)
C. 为何js计算带有小数的加法的时候会出现误差
很正常的,浮点数运算的误差。哪种语言都这样,只是误差大小不同而已。
用解析字符串的方式移动小数点,转化为整数,完毕后,在把小数点复位。
浮点数运算的时候,先转化为二进制,用二进制来算,结果再转回十进制
例如 :求1038.1-1000
1038.1=10000001110......
1000= 1111101000
1038.1转化为二进制是个无限循环小数,1100是循环节,只能取近似值,误差就是这里产生的
如果浏览器版本高,可以用toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.
后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。
语法
NumberObject.toFixed(num)
返回值
返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。
抛出
当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。
当调用该方法的对象不是 Number 时抛出 TypeError 异常。
在本例中,我们将把数字舍入为仅有一位小数的数字:
Show the number 13.37 with one decimal:
<script type="text/javascript">
var num = new Number(13.37);
document.write (num.toFixed(1))
</script>
输出:
Show the number 13.37 with one decimal:
13.4