[英]Double with two Decimal Places
我正在使用實體框架來創建包含某些產品的數據庫。 產品有一個名為 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; }
}
}
是否可以像我展示的那樣將其保存在數據庫中以及如何保存?
表示 m.netary 值的數字永遠不應存儲為浮點數或雙精度數。 這是因為浮點數和雙精度數基於二進制系統,因此無法准確存儲某些在十進制系統中具有精確表示的值。 如果您需要對這些值進行數學運算,您遲早會遇到舍入錯誤。
相反,您應該以小數類型存儲 m.netary 值,這可以准確地表示它們,或者更簡單地,將它們存儲為 integer 類型的美分。
您要顯示多少位小數是表示層的工作,而不是數據存儲層的工作。
您可以截斷數字。
截斷為十進制:
Math.Truncate(valueToBeTruncated * 10) / 10;
截斷為百進制
Math.Truncate(valueToBeTruncated * 100) / 100;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.