本文翻译自:ダブル対小数点!-どちらを使うべきとするとき?[重複]
この質問はすでにここに答えがあります。 この質問は、ここで回答されています。
- ときに私の代わりに、小数点のダブル使うべき ? 私が代わりに小数点以下の二重を使用すべきですか? 回答12の 12答え
私はCでダブルス使っている人を見ておく #を。 私は人々がC#でダブルスを使用し見てきました。 私はダブルス時々ことをどこかで読み知っ失う精度。 私は何かのどこかに、時々失う精度を読んで知っています。 私の質問は、ときにする必要があり、使用ダブル、私は小数点タイプを使用する必要があるとき? 私は小数点型を使用しなければならないときに私の質問は、あなたがダブル使うべきときでしょうか? どのタイプは、お金の計算?に適している 通貨に適したタイプは何? (IEグレーター最後以内$ 1億101 - 。500) (すなわち以上米国よりも$ 100百万円)
#1階
参考:https://stackoom.com/question/4tGb/小数点とダブル-使用されたとき- -繰り返し使用する必要があります
ハウス#2
お金のために:decimal
。 お金:decimal
。 AリトルモアメモリーITは、コスト、しかし、あなたは丸めのような悩みを持っていませんdouble
たまにあります。 それは少しより多くのメモリがかかりますが、何の丸めトラブルが好きなんですがdouble
時々あり。
ハウス#3
お金のために、常に小数。 お金のために、常に小数。 それが作成された理由です。 それが作成された理由です。
数字を正しくまたはバランスならなければならない場合は 、使用し小数点以下を。 番号が正しい和やバランス、利用小数にする必要があります。 これは、任意の金融ストレージや計算、含まれる人々は手で行う可能性がありますスコア、または他の数字を。 これは、金銭またはコンピューティング、ストレージが含まれ、または他のデジタルの人が手作業で行ってスコア付けすることができます。
数字の正確な値がない場合には 、重要な、。スピードのための二重の使用 数の正確な値は重要でない場合は、速度と二重の使用。 これは、グラフィックス、物理学または他の物理的含む 「有効桁数」が既に存在する科学計算を。 これはグラフィック有する物理的または他の物理的科学計算含む「有効数字」。
#4階
確かにあなたのお金の計算のための整数型を使用します。 絶対整数型通貨を。 ので、これは十分に強調することはできません一見、浮動小数点型が適切であると思われるかもしれません。 一見十分な浮動小数点型を持っているように見えるので、十分に強調することはできませんので。
Pythonコードの例をここに: これは、例えば、Pythonのコードです:
>>> amount = float(100.00) # one hundred dollars
>>> print amount
100.0
>>> new_amount = amount + 1
>>> print new_amount
101.0
>>> print new_amount - amount
>>> 1.0
それはかなりノーマルに見えます。 罰金に見えました。
今、10 ^ 20で再びこれを試してくださいジンバブエドル 試しに今して10 ^ 20ジンバブエドル
>>> amount = float(1e20)
>>> print amount
1e+20
>>> new_amount = amount + 1
>>> print new_amount
1e+20
>>> print new_amount-amount
0.0
あなたが見ることができるように、ドルが消えた 。 あなたが見ることができるように、ドルは姿を消しました。
あなたは整数型を使用する場合は、罰金に動作します: あなたは整数型を使用する場合は、作業することができます:
>>> amount = int(1e20)
>>> print amount
100000000000000000000
>>> new_amount = amount + 1
>>> print new_amount
100000000000000000001
>>> print new_amount - amount
1
ハウス#5
小数は正確な値です。 正確な値を小数。 ISダブル。の近似値を ダブル概算です。
USD: $12,345.67 USD (Decimal)
CAD: $13,617.27 (Decimal)
Exchange Rate: 1.102932 (Double)
ハウス#6
私の質問は、ときにする必要があり、使用ダブル、私は小数点タイプを使用する必要があるとき? 私は小数点型を使用しなければならないときに私の質問は、あなたがダブル使うべきときでしょうか?
decimal
ときの範囲の値を持つため 10 ^(+/- 28)、どこであなたが仕事ベース10個の表現に基づいて行動についての期待を持っている- 。基本的にお金 あなたは10 ^の範囲内(+/- 28)の値を使用する場合本質的に、ケースベース10表現に基づいて行動の期待がある場合decimal
。
double
あなたが必要とするときの相対乱暴に異なる大きさ間精度(IEは、末尾に失っているAの問題ではないに大きな値の精度を数字) - double
。より最後の10 ^(+/- 300)の中でカバー double
あなたは必要なときに、相対大の精度(であるが、精度の損失の数値の終わり問題ではない)異なる大きさの多くを横切る- double
以上10 ^(+/- 300を覆います)。 科学的な計算は、ここで最高の一例です。 科学的なコンピューティングは最高の一例です。
お金の計算?のために適したタイプである 通貨に適したタイプは何?
小数、小数、小数 小数、小数、小数
何の代替を受け入れていない。 代替案を受け入れません。
最も重要な要因のうちつまりdouble
、AS Aバイナリ分数を実施され、正確に多くを表すことができないdecimal
画分(0.1のように)しているATのすべての ITが広64'bit FC対128」ビットであるためと数字の全体的な数が少なく動作がIS decimal
。 最も重要な因子は、バイナリ分数の形で実装されてdouble
正確に多くの表現できないdecimal
画分(例えば0.1) 、およびその幅が64ビットであり、であるため、総ビット数は、小さいdecimal
128ビットです。 最後に、金融アプリケーション多くの場合、フィールドはにフォロー特有の持ってい丸めモード(時々 、法律で義務付けられたが)。 最後に、財務アプリケーションは、多くの場合、特定の従わなければならない丸めモード(時には法律で義務付けを)。 decimal
これらの支持体 ; decimal
それらをサポートし、 double
しません。 double
なし。