2011-08-05 70 views
0

該值什麼是四捨五入的變量,並將其存儲四捨五入所以完全按原樣被顯示的話,如果它進入數據庫,它熄滅的方式。四捨五入和存儲只是貨幣

例如,在計算總稅款後一順序,等。,而它顯示只有兩個數字的用戶喜歡12.67,它實際上被存儲在數據庫中的未舍入。

現在,我正在通過做String.Format(「{0:f2」,總計),然後將其轉換回double,然後用它來顯示/存儲在數據庫中,但是必須有一個更好的方法。

我在示例代碼,這樣

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

有沒有辦法做到不使用實體精度設置看見?

我使用定製類業務對象,也許有一個註釋,我將能夠使用?

+2

你找麻煩,當你存儲在'double'貨幣價值。爲此使用'decimal'。 –

+0

感謝,指出... – DevSharp

+1

是啊,我第二「不使用雙重貨幣」。浮點數以二進制形式存儲,許多常用的十進制數字以十進制形式重複,導致舍入問題。詢問你的編譯器是否爲0.1 + 0.1 + 0.1 == 0.3。 – c4757p

回答