我正在使用实体框架创建一个数据库与一些产品。产品有一个实体命名的价格,我想保存所有的价格与两位小数,即使它是一个整数。
比如:
2 = 2.00
5.9= 5.90欧元
十七点九九=十七点九九
无法使用十进制
这是我的产品:
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; }
}
}
是否有可能像我展示的那样将其保存在数据库中?如何保存?
2条答案
按热度按时间h43kikqp1#
您可以截断数字。
截断为小数:
截断为百分位数
8wtpewkr2#
表示货币值的数字不应该存储为浮点数或双精度数。这是因为浮点数和双精度数是基于二进制系统的,因此不能存储某些在十进制系统中有精确表示的值。如果你需要用这些值做数学运算,你迟早会遇到舍入误差。
相反,您应该将货币值存储在十进制类型中,这样可以精确地表示它们,或者更简单,将它们存储为整数类型中的美分。
要显示多少位小数是表示层的工作,而不是数据存储层的工作。