私は指数数を持っています: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 の結果とは異なる結果になります。
なぜ違いがあるのですか?どちらの結果が正しいですか?
提案してください。
ありがとうございました