2016-04-10 35 views
1
このサンプルコードで

大きい数値のdouble型の精度を上げる方法は?

double number = 2646849856355434345; 
Console.WriteLine(number % 5); 

私はこの操作にダブルを使用している場合、それは正確な答えを与えることはありません。ここでは "0"を出力すべきところに "1"が出力されます。

大きな倍数の精度を上げる方法はありますか?

注:BigIntegerについて知っていますが、私はそれらを使うことができますが、BigIntegerは長い時間がかかり、私は倍精度で同じ精度を持つことができますか?

+1

'Decimal'はどうですか?私はそれが「Double」よりも高い精度を持っていると信じています。 –

+1

はい、10進数は約29桁の精度です。 –

+1

'double 'データ型を変更することはできません。異なるデータ型にのみ切り替えることができます。 –

答えて

3

Decimalを使用できます。

これは、財務および金銭の計算に適しています。 doubleは、浮動小数点演算のIEEE標準(IEEE 754)に基づいています。

2進浮動小数点と10進浮動小数点の違いを知りたい場合は、次の記事(reference)を読んでください。

Binary floating point(フロート/ダブル)
Decimal floating point(10進数)

1

Doubleあなたは小数点演算にDecimalデータ型を使用する必要が小数精度を必要とする操作に使用されるべきではありません。

Doubleデータ型は、バイナリ浮動小数点数に基づいているため、小数点演算では100%正確ではありません。

関連する問題