也许这是一个重复的问题,但我找不到正确的词来搜索问题。 我使用NHibernate,在模型中我有一个小数,其值设置为0.000005。当我将此对象发送到DB时,它将保存为0.0000000。我在profiler中检查了db调用。我的C#代码正在向DB发送0.000000。我怎么能阻止它?我需要准确的值来保存在数据库中。
我的对象是:
public class myClass{
public virtual decimal percentage{get;set;}
public virtual DateTime StartDate { get; set;
}
myClass obj = new myClass{percentage = 0.000005 , StartDate = DateTime.Now};
myRepo.SaveOrUpdate(obj);
保存在DB中的值为0.0000000,其数据类型为十进制(38,17)
我无法将数据类型更改为float。 我希望将精确值保存在DB中。应该做些什么?
答案 0 :(得分:1)
这是我测试的解决方案
public class myClass
{
public virtual decimal percentage { get; set; }
public virtual DateTime StartDate
{
get;
set;
}
}
使用0.000005M
代替0.000005
myClass obj = new myClass{percentage = 0.000005M , StartDate = DateTime.Now};
除了在SQL AS DECIMAL (18,6)
中选择数据类型,您可以设置DECIMAL (18,2)
或DECIMAL (18,5)