关闭
查尔char 2019-09-01 11:19 采纳率: 100%
浏览 974
已采纳

MySQL 对NUMERIC类型数据使用 ROUND函数

在一本SQL基础书上看到这样一个关于ROUND函数例子

下面是创建表和插入表的数据。

  1. -- DDL :创建表
  2. CREATE TABLE SampleMath
  3. (m NUMERIC (10,3),
  4. n INTEGER,
  5. p INTEGER);
  6. -- DML :插入数据
  7. START TRANSACTION;
  8. INSERT INTO SampleMath(m, n, p) VALUES (500, 0, NULL);
  9. INSERT INTO SampleMath(m, n, p) VALUES (-180, 0, NULL);
  10. INSERT INTO SampleMath(m, n, p) VALUES (NULL, NULL, NULL);
  11. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 7, 3);
  12. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 5, 2);
  13. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 4, NULL);
  14. INSERT INTO SampleMath(m, n, p) VALUES (8, NULL, 3);
  15. INSERT INTO SampleMath(m, n, p) VALUES (2.27, 1, NULL);
  16. INSERT INTO SampleMath(m, n, p) VALUES (5.555,2, NULL);
  17. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 1, NULL);
  18. INSERT INTO SampleMath(m, n, p) VALUES (8.76, NULL, NULL);
  19. COMMIT;

图片说明

图片说明

下面是使用ROUNG函数查询的结果。 为什么返回值里保留小数的位数并不是参数n的位数。而是原来数据保留的位数???

图片说明

- 书里面给的查询示例却是这样的?这个是出了什么状况了?bug吗?还是版本的问题? 我电脑装的是MySQL5.7.26版本。 . 书上的示例查询结果如下:

图片说明

网上没有查到相关的信息。麻烦大佬解答一下,谢谢。

展开全部

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-09-01 16:04
    关注

    这只是显示的问题。不同的客户端,对于尾数0的显示方式不同。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部