2011-08-05 11 views
0

変数を四捨五入して四捨五入する方法は、DBに行くと表示されているとおり正確に消えるようにする方法です。通貨の値を四捨五入して格納する

たとえば、12.67のようにユーザーに2桁の数字しか表示されないうちに、税金などの注文の合計を計算すると、実際にデータベースには格納されていませんでした。

現在、私はString.Format( "{0:f2"、total)を実行してそれを二重に変換してからDBに表示/保存するようにしていますが、もっといい方法。

は、私はこのようなコード例

protected override void OnModelCreating(
    System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) { 
    modelBuilder.Entity<Movie>().Property(p => p.Price).HasPrecision(18, 2); 
} 

エンティティを使用することなく、その精度の設定を行う方法はありますで見ましたか?

ビジネスオブジェクト用にカスタムビルドクラスを使用していますが、使用できるアノテーションがありますか?

+2

金額を「ダブル」に保存するときに問題が発生することがあります。そのために 'decimal'を使います。 –

+0

ありがとうございました... – DevSharp

+1

ええ、私は第二の "通貨のためにダブルを使用しないでください"。浮動小数点数はバイナリ形式で格納され、多くの一般的な単純な数値がバイナリで10進数で繰り返されるため、丸めの問題が発生します。 0.1 + 0.1 + 0.1 == 0.3ならあなたのコンパイラに尋ねてください。 – c4757p

答えて

関連する問題