我在mysql DB rating
中有一个字段,数据类型为float(2,1)
。一行包含值0.5
,但当我使用时
SELECT round(rating) FROM table WHERE ...
给出值0而不是1。
但SELECT round(0.5)
给出了值1
(对于Postgresql也是如此)。
此外,PHP总是为echo round(0.5);
提供值1
我真的很困惑。
将数据类型从float(2,1)更改为decimal(2,1。
尝试SELECT ROUND(rating)
而不是SELECT ROUND('rating')
。
四舍五入字符串可能会得到奇怪的结果。您可能在列值之后,该值不应该使用'
进行转义。
使用
SELECT round('rating') FROM table WHERE ...
你把字符串"rating"四舍五入,这就是为什么它给你零的原因
试试这个
SELECT round(rating) FROM table WHERE ...