我有以下情况:
我创建了一个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
改为3
到Severity
列?
答案 0 :(得分:3)
浮点数没有“重要尾随零”的概念。结果3.0,3,3.0000以二进制形式存在时都是相同的。
如果必须将值保存为某处格式化 - 在数据库(或任何其他存储)中以字符串形式存储。如果您确切知道要提供多少位数,请考虑将预乘值存储的自定义类型(例如3.0
为3.0*10
,或甚至(int)30
)并在此期间小心移位浮点数数学运算。
如果您只想在小数点后显示至少一位数 - 请使用适当的格式。
答案 1 :(得分:1)
这是插入一个自动更改为float
的整数的一种方法create table #tablefloat
(
Severity_amount float
)
insert into #tablefloat select 212
select * from #tablefloat