老师我实验和课程里的不一样

来源:2-15 测试浮点类型

Wonwayshon

2020-11-11 10:27:53

http://img.mukewang.com/climg/5fab4b45094e2b1211460365.jpg

http://img.mukewang.com/climg/5fab4bd9090e2ca511010489.jpg

在test_float表中4.125只有decimal的四舍五入了,其他的并没有,后使用4.126测试全部四舍五入,为什么5在float和double均被舍弃而只有decimal5入呢?

以下是我的代码

-- 测试浮点数
CREATE TABLE test_float(
  a FLOAT(4,2),
  b DOUBLE(4,2),
  c DECIMAL(4,2)
);

INSERT test_float(a,b,c) VALUES(4.124,4.125,4.126);

INSERT test_float(a,b,c) VALUES(4.125,4.125,4.125);

写回答

1回答

好帮手慕小脸

2020-11-11

同学你好,都会进行四舍五入的。

1、因为decimal是严格按照指定的精度进行四舍五入的,而float和double则是系统自动进行了四舍五入,不可控。

例如,当小数位是1的时候,float是四舍五入的,举例如下:

http://img.mukewang.com/climg/5fab5d8709e1c51104620383.jpg



0

0 学习 · 8016 问题

查看课程