我想对很长的数字进行四舍五入,round((函数在这里运行得很好,但数字的长度仍然相同。
我曾经:ROUND(152.23456789123456789,1)
得到:152.20000000000000000
但希望获得:152.2
我读到有TRUNCATE((函数;切割";十进制数字,但这对我不起作用。我收到一条错误消息,说该函数不存在或权限被拒绝。我正在使用Vertica。我尝试的功能是:TRUNCATE(152.23456789123456789,1)
我还读到,在round函数中添加第三个参数可能会有所帮助,但这对我来说也不起作用,同样是因为该函数不存在:ROUND(152.23456789123456789,1,1)
你知道我还能做什么吗?
谢谢!
ROUND()
影响列的值,但不一定影响类型。
如果你想要一个小数位,那么转换成十进制:
CAST(152.23456789123456789 as DECIMAL(10, 1))
如果你从一个浮点类型开始,那么结果将是浮点——而额外的零可能来自于此(无论你在查询数据(。
下面是一个示例,显示了类型的差异。