javascript中的数学能力四舍五入问题
Math power rounding issue in javascript
我正在尝试移动数字周围的小数点。我设置了以下内容:
dividend = 9130.124;
numFactor = 1;
dividend = (dividend * Math.pow(10, numFactor));
我得到以下结果
91301.23999999999
我想我会得到像
这样的东西91301.24
如果我把股利换成9130.123
我得到了正确答案91301.23
是有一个方法围绕这个还是我错过了什么?
Math.ceil(91301.23999999999*100)/100 // = 91301.24
这是因为你的股息是9130.12399999…所以你必须在改变它之前使用divided.toFixed() .
dividend = 9130.12399999
dividend.toFixed(3); // here dividend will be 9130.124
numFactor = 1;
dividend = (dividend * Math.pow(10, numFactor));
你会得到91301.24
使用. tofixed(2)将值四舍五入到两位数字
dividend = dividend.toFixed(2);
http://jsfiddle.net/tamilmani/LR79p/dividend=9130.124;
numFactor=1;
dp=3;
dividend = (dividend * Math.pow(10,numFactor));
dividend = Math.round(dividend * Math.pow(10,dp) + 0.5) / Math.pow(10, dp)
你也可以使用Big.js,这是一个用于Javascript的任意精度数学库。
那么你的代码变成:
var dividend = new Big("9130.124");
dividend = dividend.times(new Big(""+Math.pow(10,1)));
console.log(dividend);
试试这个:
dividend = 9130.124345;
dividend = dividend.toString();
numFactor = 2;//can be changed as u need
var indx = dividend.indexOf( '.' );
dividend = dividend.replace( /'./g, "" );//remove .
dividend = dividend.substring( 0, indx + numFactor ) + '.' +
dividend .substring( indx + numFactor, dividend.length );
适用于numFactor的任何值。并且不需要额外的库
相关文章:
- 将数字四舍五入到小数点后两位
- 将数字四舍五入到小数点后两位,以设置货币格式
- 四舍五入JavaScript计算
- 将数字四舍五入到两位小数
- AngularJS {{ val | number:1 }} 不四舍五入到小数点后 1 位
- 提高$(..)的响应能力.点击触摸界面
- Javascript根据条件对数字进行四舍五入
- 如何使刻度四舍五入到最接近的 # 的倍数
- JQuery 将结果的长度四舍五入
- jQuery Pan & Zoom 或 Magnify 脚本,具有热点或图像映射链接的能力
- 使用溢出时隐藏滚动条:滚动;但保持滚动能力
- 四舍五入到(1、1.5、2、2.5等)javascript
- 在JavaScript中,最紧凑、最优雅、最高效的四舍五入方式是什么
- 将数字四舍五入到最接近的10's放置javascript
- HTML浮点数字字段具有高精度,但呈现四舍五入值
- 将类添加到<身体>如果在“;“有能力”;iOS 7上的网络应用程序
- 测试客户端'通过https-ASP.net连接的能力
- Moment.js四舍五入
- 将数字四舍五入到最近值
- javascript中的数学能力四舍五入问题