Save float values in SQL Server

前端 未结 3 1412
青春惊慌失措
青春惊慌失措 2020-12-11 17:26

I have a simple web app , and want to save some numbers of Float or Double format in SQL server.

but there is a problem , when I try to save 123.66 , In Table I see

相关标签:
3条回答
  • 2020-12-11 17:45

    You're not actually trying to save 123.66, because you can't represent 123.66 exactly as a float or double. The database is saving the data more accurately than you're used to, that's all.

    If you want to save decimal numbers accurately, use the decimal type.

    See my articles on floating binary point and floating decimal point types for more info.

    0 讨论(0)
  • 2020-12-11 17:55

    This is not a database issue, but a general problem with floating numbers

    0 讨论(0)
  • 2020-12-11 18:01

    I think this is VS Problem not Sql server, Here i pass amount in string ("12.89") to stored procedure and find data save accurate 12.89

    Solution-

    Change Float to string in Properties and Methods,procedure

    Note

    don't change column type Float to string in table

    Example-

    In Your Property

    Public Float Amount { get; set; }
    

    TO

    Public String Amount { get; set; }
    

    In Your Method

    Public boolAdd(String amount)
    
    {
    
    //Your Logic Like
    
    bool status = false;
    
    DbParam[] param = new DbParam[1];
    
    param[0] = new DbParam("@amount", "", "amount", SqlDbType.VarChar);
    
    status = Db.Update(ds, "sp_Add", "", "", param, true);
    
    return status;
    
      }
    

    In Your Procedure

    Note- Amount column is Float type in table don't change to sting


    Create Proc sp_Add
    (
    
    @amount varchar(20)
    
    )
    as
    
    begin
    
    Insert into Price(amount) values (@amount)
    
    end
    
    0 讨论(0)
提交回复
热议问题