【问题标题】:How MySQL is rounding numbers by default?默认情况下 MySQL 如何舍入数字?
【发布时间】:2013-04-26 11:14:37
【问题描述】:

假设我们有一个包含两列的表格:

  • number_a DECIMAL(6,3)
  • number_b DECIMAL(6,2)

我的问题是:mysql 如何在这个查询中四舍五入:

UPDATE table SET number_b = number_a

截断,舍入到一半向下,一半向上?

编辑:我只需要链接到文档。我想确保没有神奇的设置让它在不同的服务器配置上工作不同

【问题讨论】:

  • 它将四舍五入(是的,一半向下,一半向上)到 2 dp
  • @F4r-20 mysql.ini/官方文档中有设置吗?
  • 你想达到什么目的
  • @F4r-20 我想在应用程序中使用此查询,但我想确保在每台服务器上、在每种配置上都以相同的方式进行舍入
  • 显然我会在必要时使用ROUND()函数

标签: mysql rounding


【解决方案1】:

它将有效地使用 ROUND()。您可以在此处看到一个简单的示例表,其中包含将 3dp 值放入 2dp 列的 UPDATE 结果:http://sqlfiddle.com/#!2/de5b7/1

CREATE TABLE test(
    3dp DECIMAL(6,3),
    2dp DECIMAL(6,2)
);

INSERT INTO test (3dp,2dp) VALUES 
    (1.114,0),
    (1.115,0),
    (1.116,0);

UPDATE test SET 2dp = 3dp;

SELECT * FROM test;

生产结果

3DP     2DP
---------------
1.114   1.11
1.115   1.12
1.116   1.12

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2010-12-02
    • 2012-11-24
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多