如何使用bigquery向上舍入小数点后的4位数?

时间:2017-03-24 17:47:00

标签: google-bigquery

我们现在没有BigQuery中的十进制数据类型。所以我必须使用float

但是

在Bigquery浮动分部

0.029 * 50/100 = 0.014500000000000002

虽然

0.021 * 50/100 = 0.0105

将值向上舍入

我必须使用round(floatvalue * 10000)/ 10000。

这是在BigQuery中处理十进制数据类型的正确方法吗?

2 个答案:

答案 0 :(得分:6)

取决于您的编码首选项 - 例如,您只需使用简单ROUND(floatvalue, 4)
取决于你需要如何向上或向下 - 你可以分别调整表达式 例如ROUND(floatvalue + 0.00005, 4)

在下面的链接中查看BigQuery Standard SQL的所有舍入函数

https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#rounding-functions

答案 1 :(得分:1)

请注意,这个问题现在应该得到不同的答案。

问题的前提是“我们现在在BigQuery中没有十进制数据类型。”

但是现在我们要做:您可以使用NUMERIC

SELECT CAST('0.029' AS NUMERIC)*50/100

# 0.0145

只需将您的列设置为NUMERIC而不是FLOAT64,就可以得到想要的结果。