C#:将数字存储在数据库中,带有2位小数。消除不必要的数字

时间:2013-07-15 18:52:01

标签: c# oracle floating-point

我有一个像这样声明的字段NumberValue1

public double NumberValue1 { get; set; }

NumberValue1的数据类型为Number oracle数据库

我从excel文件中读取了一个值 22.55

[[col8Value is an object type]]
然后我做了这个。

NumberValue1 = col8Value == null ? 0 : Math.Round(Convert.ToDouble(col8Value),2)

当我将其插入数据库时​​,我得到了下面存储的数字

22.550000000000001

为什么要把另一个...... 00001。

我只是希望它显示22.55这是我加载的初始数字

感谢。

2 个答案:

答案 0 :(得分:0)

尝试使用

private int NumberStoreHundreths
public double NumberValue1 
{ 
     get
          {
             return ((double)NumberStoreHundreths)/100;
          } 
     set
          {
             NumberStoreHundreths = (int)(value*100);
          }
}
有点老派,但应该工作

答案 1 :(得分:0)

您不需要更改db列类型,只需在app中使用不同的数据类型(提示 - 使用小数)。 (Koka Chernov的回答)

这解决了我2015年的问题。