`ROUND()` 函数 returns 意外值
`ROUND()` function returns unexpected value
我在一个特定案例中发现扳手的 ROUND()
函数 returns 意外值。
这是我的发现。
SELECT ROUND(34.092135, 8)
> 34.092135
SELECT ROUND(34.092136, 8)
> 34.092135999999996 // this is supposed to return 34.092136
SELECT ROUND(34.092137, 8)
> 34.092137
我发现这些查询与 BigQuery 的工作方式相同。
我这边有没有什么错误的假设,如果没有,我怎样才能让它正常工作?
谢谢。
Cloud Spanner 和 BigQuery 似乎都存在这个问题。尝试使用不同的值,但问题似乎是针对一组特定的输入,即它显示值 33.092136、34.092136、35.092136、......、62.092136、63.092136 的意外结果。在 33.092136 之前和从 64.092136 开始,问题似乎不存在。我也尝试使用 Cloud SQL(MySQL) 并且问题不存在。
我已经在 Public Issue Tracker 中创建了 an issue。我建议您为问题加注星标,以便在创建的问题有任何更新时收到通知。
我在一个特定案例中发现扳手的 ROUND()
函数 returns 意外值。
这是我的发现。
SELECT ROUND(34.092135, 8)
> 34.092135
SELECT ROUND(34.092136, 8)
> 34.092135999999996 // this is supposed to return 34.092136
SELECT ROUND(34.092137, 8)
> 34.092137
我发现这些查询与 BigQuery 的工作方式相同。
我这边有没有什么错误的假设,如果没有,我怎样才能让它正常工作?
谢谢。
Cloud Spanner 和 BigQuery 似乎都存在这个问题。尝试使用不同的值,但问题似乎是针对一组特定的输入,即它显示值 33.092136、34.092136、35.092136、......、62.092136、63.092136 的意外结果。在 33.092136 之前和从 64.092136 开始,问题似乎不存在。我也尝试使用 Cloud SQL(MySQL) 并且问题不存在。
我已经在 Public Issue Tracker 中创建了 an issue。我建议您为问题加注星标,以便在创建的问题有任何更新时收到通知。