【问题标题】:How can store exact decimal value in database如何在数据库中存储精确的十进制值
【发布时间】:2017-05-21 03:26:14
【问题描述】:

1 * 20/100 = 0.2

我想在数据库中存储相同的值我该怎么做 我将列类型设为Decimal,长度自动设为(10,0)

我的问题是它存储为 0 而不是 0.2

【问题讨论】:

  • double 或 float 是你在 mysql 中的朋友 ....
  • 您可以将表格字段从int更改为float
  • 您必须将表格文件类型更改为 float 或 varchar
  • 它与浮动一起使用
  • 我怀疑使用浮点数是个好主意 - 在您决定之前,您绝对应该阅读数据类型。

标签: php mysql types decimal sqldatatypes


【解决方案1】:

没有数据类型会准确存储1/3

您的20/100 示例意味着需要DECIMAL(..., 2),其中... 是合适的最大位数包括2

如果没有进一步了解这些数字的来源或使用方式,我们无法进一步讨论。

【讨论】:

    【解决方案2】:

    在您的数据库中使用类型“double”(10,2)。

    double 是类型,长度是 10,2 它将存储 0.20

    如果您只想存储一个十进制数字,请使用 10,1

    谢谢。

    【讨论】:

    • FLOATDOUBLE 不精确并且涉及额外的舍入。不要与他们一起使用(m,n)
    【解决方案3】:

    将该字段的限制更改为 (10,2),然后重试。它可能会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 2022-11-25
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多