我们现在没有BigQuery中的十进制数据类型。所以我必须使用float
但是
在Bigquery浮动分部
0.029 * 50/100 = 0.014500000000000002
虽然
0.021 * 50/100 = 0.0105
将值向上舍入
我必须使用round(floatvalue * 10000)/ 10000。
这是在BigQuery中处理十进制数据类型的正确方法吗?
答案 0 :(得分:6)
取决于您的编码首选项 - 例如,您只需使用简单ROUND(floatvalue, 4)
取决于你需要如何向上或向下 - 你可以分别调整表达式
例如ROUND(floatvalue + 0.00005, 4)
在下面的链接中查看BigQuery Standard SQL的所有舍入函数
答案 1 :(得分:1)
请注意,这个问题现在应该得到不同的答案。
问题的前提是“我们现在在BigQuery中没有十进制数据类型。”
但是现在我们要做:您可以使用NUMERIC
:
SELECT CAST('0.029' AS NUMERIC)*50/100
# 0.0145
只需将您的列设置为NUMERIC
而不是FLOAT64
,就可以得到想要的结果。