前提・実現したいこと
割り算を行った際に生じる余りを用いたプログラムを作成しています。
しかし,0.1などの小数で割り算した際に,正確な商と余りが返ってきません。
なぜ余りが0にならないのか,簡単に説明して頂きたいです。
調べてみたところ,0.1の2進数が原因なのではないかと思ったのですが,解決策がわかりません。
正確な余りを返すための解決策を教えてく頂きたいです。
該当のソースコード
python
1 a = 1.0 2 b = 0.1 3 4 print('a/b=',a/b) 5 print(int(a/b)) #商 6 7 print('a//b=',a//b) #商を返す 8 print('a%b=',a%b) #余りを返す 9 10 temp_a,a_amari=divmod(a,b) 11 print("商=%.5e 余り=%.5e" %(temp_a,a_amari)
###実行結果
a/b= 10.0
10
a//b= 9.0
a%b= 0.09999999999999995
商=9.00000e+00 余り=1.00000e-01
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/08 12:06