8.2。通貨の種類

8.2。通貨の種類
8.2。通貨タイプ
  型は、固定された小数精度の通貨量を記憶します。表8.3を参照してください。小数  の精度は、データベースのLC_MONETARYの設定によって決定されます。表に示される範囲は、  2桁の小数がある前提。入力は、整数を含む様々な形式で受け入れられている  ような、浮動小数点リテラル、ならびにフォーマットの典型的な通貨 「$ 1,000.00」出力は、  後者の形式で、一般的にはなく、ロケールに依存します。
小数精度に格納固定金額の通貨の種類は、表8.3を参照します。LC_MONETARY小数精度はデータベースの設定によって決定されます。表には、範囲が2進の場所があると仮定し表示しました。以下のような、整数と浮動小数点のテキストだけでなく、一般的な通貨の書式、を含む多くの許容入力フォーマット、あります「$ 1,000.00で。」通常、1つの形式の出力した後、しかし、ロケールに依存します。
 
このデータ型の出力はロケールに敏感であるため、それが負荷に動作しない場合があります マネー へのデータ  の異なる設定を持つデータベース LC_MONETARYを回避の問題に、ダンプをリストアする前に、  新しいデータベースに確認してください LC_MONETARYは、 データベースと同じまたは同等の価値を持つ  ダンプされました。
このタイプのデータは非常にお金のデータをロードするために、出力ロケールに敏感であるのでLC_MONETARYの異なるセットを使用してデータベースに問題となり得ます。回避の問題に、復元する前に、必ず古いものと新しいライブラリ内の値がLC_MONETARY同じまたは同等のことをします。
 
値は 、数値 int型、および BIGINT  データ型はにキャストすることができます お金以下からの変換  本物  倍精度 データ型はにキャストすることにより行うことができる 数値 例えば、最初に:
数値は、int型のBIGINT値とお金の種類はキャストすることができます。現実とdouble型は、金型に変換数値に変換することができます。例えば:
 
'12 0.34' ::のfloat8 ::数値::お金を選択します。
 
ただし、これは推奨されません。浮動小数点数が原因お金を処理するために使用すべきではない  丸め誤差のための潜在的に。
しかし、この操作は推奨されません。お金を扱う際に丸めたときに問題が発生しますので、私たちは、浮動小数点データ型を使用することをお勧めしません。
 
 お金の 価値はにキャストすることができ 、数値 精度の損失なし。他のタイプへの変換ができ  、また2つの段階で行われなければならない潜在的に失う精度、および:
お金の価値は、数値データ型に精密鋳造を失ったことがないかもしれません。他のタイプへの変換は精度を失う可能性があり、また2つのステップを取る必要があります。
 
SELECT '52093.89' ::お金::数値:: float8型。
 
分割  整数値による値は小数部分の切り捨てを用いて行われる  、ゼロに向かって。丸めた結果、浮動小数点値で割り、またはキャストを取得するには 、お金の 価値を  数値 に分割し、バックの前に お金 その後を。(後者は、危険を回避することが望ましい  精度の損失)場合 貨幣 値で割ったときの 貨幣 価値、結果は 倍精度  (すなわち、純粋な数ではなく、お金)。通貨単位は、分割で互いに打ち消し合います。
整数値による金銭的価値は、小数部はゼロに切り捨てられます。あなたは丸めの結果を取得したい場合は、浮動小数点値、または数値型に変換通貨値で割ってください、その後除去し、金型に戻りました。貨幣価値が他の金銭的価値によって分割される場合(どの最良の精度の損失を被るリスクを回避するために回避される)、その結果を(むしろ金銭的価値よりも、即ち純粋にデジタル)double型である分割で互いに通貨単位オフセット。
发布了341 篇原创文章 · 获赞 54 · 访问量 88万+

おすすめ

転載: blog.csdn.net/ghostliming/article/details/104614234