2013-06-17 3 views
1

Не получать значения десятичной точки при добавлении в db. Он автоматически округляется до ближайшей цифры.Как хранить десятичные значения в БД?

Я объявил его как

public Decimal Amt { get; set; } 

и в моей основной модели она как

public int Add(Decimal Amt) 
     { 
      using (SqlConnection con = new SqlConnection()) 
      { 
       con.ConnectionString = CONNECTION_STRING; 
       using (SqlCommand cmd = new SqlCommand()) 
       { 
        cmd.Connection = con; 
        cmd.CommandText = "INSERT INTO ledger(Amt)VALUES(@AMT)";      
        cmd.Parameters.AddWithValue("@AMT", Amt); 
        int modified = cmd.ExecuteNonQuery(); 
        if (con.State == System.Data.ConnectionState.Open) con.Close(); 
        return modified; 
       } 
      } 
     } 

и в БД это тип данных Decimal (18,0).

ответ

1

Второй параметр в Decimal (18,0) является 0, что означает, что вы не хотите десятичного знака. Например, если u определит десятичный (18,2), он даст до 2 знаков после запятой.

1

изменить тип данных в (18,6), или так, в зависимости от того подходит для вас,

Второй часть десятичного типа данных показывает, сколько цифр вы требуете после «точки». В вашем случае это «0», поэтому db округляет его до ближайшего целого.

Смежные вопросы