如何将浮点值插入数据库?

时间:2014-06-09 15:59:31

标签: c# sql sql-server database rdbms

我有以下情况:

我创建了一个C#方法,用于对SQL Server数据库表执行插入查询。在这个方法中,我有类似的东西:

                // [Severity] insertion on the DB:
                if (v.Severity != null)
                {
                    _strSQL += ",[Severity] ";
                    strSQLParametri += ", @SEVERITY ";
                    _addParameter(command, "@SEVERITY", v.Severity);
                }

其中Severity是表格列,v.Severity是我必须为新行添加到此列中的值。

在表格中,Severity列定义为float

我的问题是,如果v.Severity的值类似于3.7,它会在3.7列中执行Severity值,但如果它类似于3.0它放3而非3.0

我需要做些什么才能将3.0改为3Severity列?

2 个答案:

答案 0 :(得分:3)

浮点数没有“重要尾随零”的概念。结果3.0,3,3.0000以二进制形式存在时都是相同的。

如果必须将值保存为某处格式化 - 在数据库(或任何其他存储)中以字符串形式存储。如果您确切知道要提供多少位数,请考虑将预乘值存储的自定义类型(例如3.03.0*10,或甚至(int)30)并在此期间小心移位浮点数数学运算。

如果您只想在小数点后显示至少一位数 - 请使用适当的格式。

答案 1 :(得分:1)

这是插入一个自动更改为float

的整数的一种方法
create table #tablefloat 
(
    Severity_amount float
)

insert into #tablefloat select 212

select * from #tablefloat