【问题标题】:Converting string to double, rounding value将字符串转换为双精度值,舍入值
【发布时间】:2014-04-04 10:37:28
【问题描述】:

我正在将字符串值转换为 double 并将其发送到数据库。显示 6 位小数。 这是代码

strUpdate = "UPDATE tbPrice SET dblPrice = " 
    + Convert.ToDouble(txtPrice.Text.Trim())
    + ",chrCity  = '" + txCity.Text.Trim()
    + "' WHERE pk_lngID = " + txtID.Text.Trim();

这里txtPrice 的值是1.23456789,但是当它更新到数据库中时,它的值变成了1.2345679。为什么四舍五入的价值。我需要得到1.234567(用户输入的值被截断到小数点后6位。

【问题讨论】:

  • 什么样的数据库?列类型设置为什么?
  • 它是访问,列设置为双。实际上将文本框值发送到双倍的数据库列。
  • 好的,在 Access 中,您可以将字段类型设置为数字。然后设置你想要的小数位数。如果你使用小于 6,它会将数字四舍五入到第 5 位。
  • 根据设计文件,我应该只选择双份。我想显示 6 位小数并为此编写代码。但仍然不明白为什么它会四舍五入。这是 C# 转换的工作原理还是什么。感谢您的帮助。
  • 我认为是数据库导致了舍入,而不是您的 C#。我没有办法在 Access 中设置特定类型的“double”。我在后台打开了它,只有带有选项的“数字”。

标签: c# ms-access double


【解决方案1】:

总结我的 cmets,因为它们最终成为公认的答案:

好的,在 Access 中,您可以将字段类型设置为数字。然后设置你想要的小数位数。如果你使用小于 6,它会将数字四舍五入到第 5 位。

我认为是 DB 导致了舍入,而不是您的 C#。我没有办法在 Access 中设置特定类型的“double”。编辑:双精度存在,但底线是需要正确设置小数位数。

完整的对话请查看 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多