首页 > 解决方案 > 数值数据类型和小数

问题描述

我确定这一定很简单,但我似乎无法弄清楚。我有一列充满分数,例如:0.6333333333。我将数据类型设为 NUMERIC 是否正确?还是应该是别的东西?因为它一直给我这个错误:

Could not convert value '0.6333333333' to numeric

我应该减少小数还是将类型更改为其他类型?

标签: sqlgoogle-bigquery

解决方案


BigQuery 中的NUMERIC数据类型可为您提供所需的一切,只要您需要 38 位的精度和小数点右侧最多 9 位的精度。引用文档

NUMERIC 数据类型是具有 38 位精度和 9 位小数位的精确数值。

您的值在小数点右侧有 10 位。因此,这无法准确表示。你能做什么?以下是一些选项:

  • 忘记第十位数字。它持续的时候很好,但 BQ 不支持它。
  • 将这些值乘以 10 或其他 10 的倍数,这样它们就可以精确地表示(你知道,这些值表示毫米而不是公里)。
  • 将值存储为字符串并在需要进行算术运算时转换为浮点数。
  • 将值存储为浮点数,并希望该值“足够接近”(该值应该有足够的精度)。

推荐阅读