2016-07-25 3 views
-2

私は永続的なストレージシステム内でGooglesプロトコルバッファライブラリを使用しており、通貨価値を維持したいと思いますが、写真で提供されている浮動小数点型(float/double)が十分であるかどうかはわかりません。すべての通貨の値を文字列として格納することには欠点がありますか(たとえば、0.1ではなく「0.10」を格納)、データを取得して算術演算を行う必要があるときにConvert.ToDecimal関数を使用しますか?proto3の文字列として小数点以下を格納する際の短所は何ですか?

+2

表現の相違 –

+0

また、処理するよりもはるかに多くのメモリを必要とします。 –

答えて

0

あなたはfloat/doubleデータ型が適してないであることを見込んで正しいある「通貨!」  彼らはある種の小数表現を使う:

は、SQLデータベース(と、うう、COBOLプログラム...)一般店「通貨」の値がどのように考えてみましょう。  たとえば、真のCOBOLプログラムでは、「2進化10進数(BCD)」データ型を使用することがあります。   Microsoft Accessデータベースでは、ドルとセントの値に10,000を掛けて、を固定(!)「小数点以下4桁」にして、「縮尺付き整数」を使用します。この質問の直接の目的のために

、私は間違いなく、文字列として値を格納し、その後非常に桁数に真剣に考えが格納されるだけでその番号に「丸め」処理する方法を与えるだろう数字の 

“ストレージサイズ(例えば、そのような“銀行’の丸め。”ようなアルゴリズムがありますか)? ”  あなたドン’ t気にする。  あなたがを行う場合はが気になるのですが、もし特定の顧客(または、監査人...)が実際に印刷された明細書のすべての番号を追加するならば、その紙のボトムラインは同意します。少なくとも1つのペニーの中で、非常に(!)少なくとも。

+0

当然のことながら、IBMのPOWER CPUには最近、小数値演算コプロセッサが搭載されています。金融アプリケーションのために非常に便利、大きなスピードアップを提供します。驚くべきことに、IBMは金融業界に多くのメインフレームを販売しています。 – bazza

関連する問題