私はこのSQL float精度の問題
+------+------------+
| fruit|fruit_number|
+------+------------+
| apple| 20|
|orange| 33|
| pear| 27|
| melon| 31|
| plum| 8|
|banana| 4|
+------+------------+
のようなテーブルfruit_df_sql私は、各行のパーセンテージを生成する必要がありますが、私は割合欄を合計したとき、私は100%を取得できませんでした
select fruit, round(fruit_number/123*100,2) as cnt_percent
from fruit_df_sql
order by cnt_percent desc
私はcnt_percentの列を合計した場合、私はこの
+----------------+
|sum(cnt_percent)|
+----------------+
| 99.99|
+----------------+
ない100%を得ました。分割とラウンドが浮動小数点精度の問題をもたらすからだと思います。助けてください。ありがとう。
これはパーセントで発生します。修正するのは特に簡単ではありません。 –
あなたのfruit_numberデータ型は何ですか?私はそれが浮動しなければならないと思う。 –
intまたはlong – newleaf