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

sea*_*ain 6 google-bigquery

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

在Bigquery浮动师

0.029*百分之五十零= 0.014500000000000002

虽然

0.021*百分之五十零= 0.0105

将值向上舍入

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

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

Mik*_*ant 9

取决于您的编码首选项 - 例如,您可以使用简单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


Fel*_*ffa 5

请注意,这个问题现在需要一个不同的答案。

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

但现在我们做到了:您可以使用NUMERIC

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

# 0.0145
Run Code Online (Sandbox Code Playgroud)

只需将您的列NUMERIC改为FLOAT64,您就会得到所需的结果。