我正在使用物體框架來創建包含某些產品的資料庫。產品有一個名為 Price 的物體,我想保存所有帶兩位小數的價格,即使它是一個整數。
喜歡:
2 = 2.00
5.9 = 5.90
17.99 = 17.99
我不能使用十進制
這是我的產品:
namespace CashRegister.Models
{
public class Produkt
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public double Preis { get; set; }
public bool Preisart { get; set; }
public bool Deaktiviert { get; set; } = false;
public List<EinkaufsPosition> EinkaufsPositionen { get; set; }
public int KategorieId { get; set; }
public Kategorie Kategorie { get; set; }
}
}
是否可以像我展示的那樣將其保存在資料庫中以及如何保存?
uj5u.com熱心網友回復:
您可以截斷數字。
截斷為十進制:
Math.Truncate(valueToBeTruncated * 10) / 10;
截斷為百分位
Math.Truncate(valueToBeTruncated * 100) / 100;
uj5u.com熱心網友回復:
代表貨幣價值的數字永遠不應存盤為浮點數或雙精度數。這是因為浮點數和雙精度數基于二進制系統,因此無法準確存盤某些在十進制系統中具有精確表示的值。如果您需要對這些值進行數學運算,您遲早會遇到舍入錯誤。
相反,您應該以小數型別存盤貨幣值,這可以準確地表示它們,或者更簡單地,將它們存盤為整數型別的美分。
您要顯示多少位小數是表示層的作業,而不是資料存盤層的作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/535901.html
