【问题标题】:Changing decimal places of a Double value MySQL更改 Double 值 MySQL 的小数位
【发布时间】:2019-10-30 15:32:30
【问题描述】:

我有一个名为 druginfo 的数据库表。它包含 WSprice 列中的价格。 WSprice 列的类型为 Double。这意味着它可以包含 23.5698 个值。但我想显示 WSprice 列中的所有值,小数点后 2 位四舍五入,如 23.57。如何将其应用于列中的所有值?帮我做这件事。

【问题讨论】:

标签: mysql


【解决方案1】:

如果您只想显示您的DOUBLE 列到小数点后两位,您可以使用ROUND 函数:

SELECT ROUND(column_name, 2)
FROM your_table

这将在结果集中将23.5698 的值显示为23.57

如果你想改变整列的格式,你可以使用这个:

ALTER TABLE your_table MODIFY column_name DECIMAL(9, 2)

【讨论】:

  • 我只是用了一个例子作为 23.5698 但是在列中有很多像那个例子一样的值 @Tim Biegeleisen 如何通常将小数位更改为所有值的 2 位?
  • 您要显示 2 个小数位,还是要更改 整列四舍五入到2 个小数位?跨度>
  • 我想将整列更改为四舍五入到小数点后两位。 @蒂姆·比格莱森
  • 你应该把你的列改成DECIMAL(9,2),这是一个定点类型,不像float - dev.mysql.com/doc/refman/5.5/en/fixed-point-types.html
  • 如果您的旧数据类型是 DOUBLE 而您不想更改它,只需使用 DOUBLE(9,2) 就像 DECIMAL 这个答案。
【解决方案2】:

我认为我们需要使用CAST() 而不是ROUND()

原因是ROUND()在数据库中存在十进制值时返回十进制值。

示例

SELECT ROUND(columnName, 2)
FROM tableName

如果 columnName = 10.5 输出将类似于 10.50

但如果 columnName = 10 输出将类似于 10

CAST() 将返回十进制值。但是我们需要DECIMALCAST

SELECT CAST(columnName AS DECIMAL(10,2))
FROM tableName

输出将类似于10.00

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多