【发布时间】:2017-05-20 18:13:44
【问题描述】:
存储在 double 中的大于 2^53 的正整数的最大精度误差是多少? 换句话说,对于从 2^53+1 到 max(double) 的所有正整数,实际整数与双精度值之间的最大精度差是多少。
关于我为什么要问的一点背景: 我正在从 pubsub 读取 SNMP 计数器并将它们写入 BigQuery。计数器为 UINT64,但 BigQuery 的整数数据类型为 INT64。所以我目前在我的 BQ 模式中使用 FLOAT。如果计数器偏离数百个值,这对我的用例来说不是问题。除非在 BQ 方面有另一种选择(不涉及使用字符串!)
【问题讨论】:
-
嗨梅丽莎 - 我很高兴浮动精度足够(给出公认的答案) - 但我仍然很好奇 - INT64 会给你精确和正确的结果吗? (除了为大的积极因素显示消极因素?)
-
嗨 Felipe - 是的。
-
嗨,Melissa - 花了一些时间,但我们现在有了 NUMERIC 类型! cloud.google.com/bigquery/docs/reference/standard-sql/…
-
菲利普太棒了!
-
嗨,Melissa - 这需要一些时间,但 BigQuery 提供了。很高兴看到你还在这里:)。您会接受下面为未来读者提供的新答案吗?谢谢!
标签: types integer double google-bigquery