プログラミング初心者で、できる事できない事を色々探りながら進めている状態です。
ちょうど開始1週間目です。
以下の問題に解きました。
input()で数字を3つ入力する。例)1 80 40
最初の数字=商品の量(kg)
2つ目の数字=最初の売り上げパーセント
3つ目の数字=(売れ残った量のうち)2回目の売り上げパーセント
最後に売れ残った商品の量を求めます。
なので、1 80 40だと
1kgの商品が、最初は80%売れて、20%売れ残り、
残った0.2kgのうち2回目は40%売れたので、残った量は0.12kg(答え)となります。
以下のコードを打ちましたが、上手くいくときは上手くいき、ダメな時はダメです。
理由は小数点以下の話になり、小数点第3位くらいまで続くものは正確に答えが出ないです。
じゃあ
float('{:.2g}'.format(first_leftover))
このようなの要らないのでは、と思いましたが、これが無いと
たまに
1.20000000000000000006
とかになってしまいます。
皆さんはどのようにコードを書きますでしょうか?
また、分からない仕組み等は逐一ネット検索になってしまいます。
小数点以下切り捨てたいけどできない=>すぐ検索
になってしまいます。これは正しい学習法でしょうか。
coding: utf-8
Your code here!
import math
total,first_percent,second_percent = [int(x) for x in input().split()]
first_sale = total * (first_percent / 100)
first_leftover = total - first_sale
second_prep = float('{:.2g}'.format(first_leftover)) #2桁まで表示
second_sale = second_prep * (second_percent / 100)
second_leftover = second_prep - second_sale
Answer = float('{:.2g}'.format(second_leftover))
print(Answer)
回答5件
あなたの回答
tips
プレビュー