我需要将从表单中获取的值存储到decimal(4,0)
。
首先(在控制器中)我从表单中获取值,然后将其从字符串转换为十进制并将其乘以100,以便我能够保留我需要的值
//"12.34" --> (12.34)*100 --> 1234
item.DECIMAL_VALUE = decimal.Parse(view.decimal_value) * 100;
我检查了调试模式:item.DECIMAL_VALUE
的值实际上是小数,其值为1234
(正如预期的那样)。
继续使用代码,我需要将值保存到数据库中
_context.TABLE.Add(item);
return _context.SaveChanges();
这就是问题所在。我收到DbUpdateException,因为它尝试保存1234,00
(与decimal(4,0)
不对应)而不是1234
关于它为什么要这样做以及如何解决的任何想法?
答案 0 :(得分:0)
如果你想坚持decimal(4,0)
这实际上是一个整数,你还应该将变量DECIMAL_VALUE
的类型更改为项类中的真整数。
之后,为了避免潜在的重新输入问题,您还应该在分配值时使用显式重新输入...
item.DECIMAL_VALUE = (int)(decimal.Parse(view.decimal_value) * 100);