-1

我正在尝试解析一个字符串以浮动并将其添加到 SqlParameter。当我输入 1234567890 时,它在数据库中保存为 1234567936。我还看到它在调试时转换为 1.234568E+9。由于数据库接受浮点数,我无法将其转换为双精度。

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

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

4

3 回答 3

4

浮点值的精度有限......即有效数字的数量有限

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

基本上一个浮点数不能保持你想要的精度。

于 2012-05-16T13:55:43.267 回答
0

是关于浮点数的所有 c# 内容

float.Parse(value)应该做你想做的

于 2012-05-16T13:52:36.603 回答
0

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

于 2012-05-16T13:56:26.717 回答