0

私は指数数を持っています:4.65661287307739E-10

JavaScript で四捨五入すると 5 に変換されます。以下のコードを使用します。

  var roundFormattedNumber = function (n) {
                    var val = parseFloat(n.replace(/[^0-9.]/g, '')).toFixed(0);
                    Ext.util.Format.thousandSeparator = ',';
                    Ext.util.Format.decimalSeparator = '.';
                    return Ext.util.Format.number(val, '0,000');
                };

最初に C# を使用してこの数値を 10 進数に解析しようとすると、次のようになります。0.000000000465661287307739M

decimal amount;
decimal.TryParse("4.65661287307739E-10", NumberStyles.Any, CultureInfo.InvariantCulture, out amount);

C# を使用してこの値を四捨五入すると、JavaScript の結果とは異なる結果になります。

なぜ違いがあるのですか?どちらの結果が正しいですか?

提案してください。

ありがとうございました

4

1 に答える 1