我在mysql DB rating
中有一个数据类型为float(2,1)
的字段。一行包含值0.5
,但是当我使用
SELECT round(rating) FROM table WHERE ...
给出值0而不是1。
但是SELECT round(0.5)
给出了值1
(对于Postgresql也是如此)。
此外,PHP始终为1
echo round(0.5);
我真的很困惑。
答案 0 :(得分:2)
将您的数据类型从float(2,1)更改为十进制(2,1),它可能适合您。
答案 1 :(得分:1)
尝试使用SELECT ROUND(rating)
代替SELECT ROUND('rating')
。
ROUNDing一个字符串可能会给你带来奇怪的结果。您可能在列值之后,不应该使用'
进行转义。
答案 2 :(得分:0)
使用
SELECT round('rating') FROM table WHERE ...
你正在将字符串'评级'四舍五入,这就是为什么它给你零
尝试这个
SELECT round(rating) FROM table WHERE ...