在小数相加时,可能会产生多个小数位.如下所示: var x=1+1; //2 var x=1.20+1.11; //2.31 var x=1.56+1.76; //3.3200000000000003 导致上述原因是因为Javascript的数字类型是以64位的IEEE 754格式存储的.在用的时候一定要小心,测试要到位. 解决方法: 加上toFixed()函数就可以把函数控制在想要的小数位以内,具体语法如下: var x=1+1; //2 var x=1.20+1.11;
var a = 0.3-0.2; -0.3; alert(a + "&" + b); if (a == b) { alert("true"); } else { alert("false"); } 0.09999999999999998&0.10000000000000003 结果为false avaScript 只有一种数字类型 Number ,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的. 浮点数
<script type="text/javascript">//n表示百分数保留的位数 function toPercent(n){ n = n || 2; return ( Math.round( this * Math.pow( 10, n + 2 ) ) / Math.pow( 10, n ) ).toFixed( n ) + '%'; } var A=0.358975, B=0.25554; alert([A, A.toPercent(3), B, B.toPer
Number类型: Number类型是ECMAScript中最常用和最令人关注的类型了:这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被成为双精度数值),为支持各种数据类型,ECMA-262定义了不同的数值面量格式. 十进制: var intNum=10; //整数 八进制: var octalNum1=070; //八进制的56 var octalNum2=079; //无效的八进制数值-解析为79 八进制字面量在严格模式下是无效的: 十六进制: var hexNu