我正在尝试在数字周围移动小数位。 我有以下设置。
dividend = 9130.124;
numFactor = 1;
dividend = (dividend * Math.pow(10, numFactor));
我得到以下结果
91301.23999999999
我以为我会得到像
这样的东西91301.24
如果我将红利改为9130.123
我得到了正确答案91301.23
有没有办法绕过这个或者我错过了什么?
答案 0 :(得分:2)
Math.ceil(91301.23999999999*100)/100 // = 91301.24
答案 1 :(得分:1)
这是因为你的股息是9130.12399999 ...所以你必须在更改之前使用divide.toFixed()..
dividend = 9130.12399999
dividend.toFixed(3); // here dividend will be 9130.124
numFactor = 1;
dividend = (dividend * Math.pow(10, numFactor));
你会得到91301.24
答案 2 :(得分:1)
答案 3 :(得分:1)
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)
答案 4 :(得分:0)
您还可以使用Big.js这是Javascript的任意精度数学库。
然后是你的code becomes:
var dividend = new Big("9130.124");
dividend = dividend.times(new Big(""+Math.pow(10,1)));
console.log(dividend);
答案 5 :(得分:0)
试试这个:
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的任何值。而且不需要额外的库