2012-05-16 49 views
-1

我想解析一个字符串来浮动并将其添加到SqlParameter。 当我输入1234567890时,它在数据库中保存为1234567936. 另外,我看到它在调试中转换为1.234568E + 9。由于数据库接受浮动,我不能将其转换成双。解析字符串来浮动

com.Parameters.Add(new SqlParameter("Awb", SqlDbType.Float)).Value = float.Parse(txtAwb.Text); 

解决方案:看起来我必须在数据库中使用另一种数据类型。浮点值不能包含具有许多数字的数字。 我正在处理一个旧的数据库,所以我会考虑别的。

+0

请编辑并询问一个明确的问题。这不是很明显,你想要什么帮助。 – Almo

+0

那么问题是什么? –

+3

为什么不float.Parse? – nawfal

回答

4

浮点值具有有限的精度C#的东西......这是显著数字一个数量有限。

如果您需要准确存储较大的值,则需要在数据库中使用不同的字段类型。货币为货币或可能是大的非小数值的整数。

基本上浮动不能容纳这么大的数字到你想要的精度。

0

here是所有关于浮动

float.Parse(value)应该做你想要什么

+0

我粘贴了错误的代码,请参阅已编辑的帖子。谢谢。 – Bora

+0

应该仍然有效。正如它在链接中所说的那样,浮点数的精度有限,只有7位数。这可能会导致您的问题 – Alex

0

不幸的是,当您使用float时,您无法获得超过7位有价值的数字。 请考虑使用其他数据类型。