1

数値の周りの小数点以下の桁数を移動しようとしています。私は次のように設定しています。

dividend = 9130.124;
numFactor = 1;
dividend = (dividend * Math.pow(10, numFactor));

次の結果が得られます

91301.23999999999

私は私が次のようなものを手に入れるだろうと思った

91301.24

配当をに変更した場合9130.123

正解です91301.23

これを回避する方法はありますか、それとも何かが足りませんか?

4

6 に答える 6

2
Math.ceil(91301.23999999999*100)/100 // = 91301.24
于 2013-03-19T11:35:40.890 に答える
1

これは、配当が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を取得します

于 2013-03-19T11:41:57.043 に答える
1

.toFixed(2)を使用して、値を2桁に丸めます。

dividend = dividend.toFixed(2);

http://jsfiddle.net/tamilmani/LR79p/

于 2013-03-19T11:42:23.053 に答える
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)
于 2013-03-19T11:45:19.263 に答える
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の任意の値で正常に機能します。また、追加のライブラリは必要ありません

于 2013-03-19T12:31:46.573 に答える
0

Javascript用の任意精度の数学ライブラリであるBig.jsを使用することもできます。

次に、コードは次のようになります。

var dividend = new Big("9130.124");
dividend = dividend.times(new Big(""+Math.pow(10,1)));
console.log(dividend);
于 2013-03-19T11:59:07.540 に答える