2

数値を 100 で割り、100 を掛けて元の値に戻します。ただし、一部の戻り値は少しずれています。

var num = 57,
    num = num / 100,

    // this should return the number to the original
    // however in this example it returns 56.99999999999999
    num = num * 100;

ここにフィドルがあります:http://jsfiddle.net/njsdW/

実際には、数字の前に 2 つの 0 を追加したいだけですが、小数点がどこにあるかは常にわかりません。

編集:私の解決策:

var num = 57,
    num = (parseFloat((num / 100).toPrecision(15)));

    // this should return the number to the original
    num = (parseFloat((num * 100).toPrecision(15)));
4

2 に答える 2

1

数値の精度を保存し、100 で割った後に復元する必要があります

prec = num.length;

// adjust for decimal point
if (num.indexOf('.') != -1)
    prec--;

// adjust for leading zero
if (num < 1)
    prec--;

num /= 100;
self.find('h2').append(num.toPrecision(prec));

JSFiddle

于 2013-01-21T11:16:18.100 に答える
0

javascript-bignumgmp.jsなどの JavaScript bignum 実装を使用して、任意の精度を得ることができます。gmp.js を使用する場合は、アプリケーションを C/C++ で書き直すか、JavaScript 用の gmp.js バインディングを作成する必要があります。その見返りとして、GNU GMP から実戦でテスト済みの信頼性と最適なアルゴリズム効率を得ることができます。

于 2013-01-21T11:11:53.947 に答える