LoginSignup
0
0

More than 3 years have passed since last update.

合計金額を割引/小数点四捨五入round

Posted at

合計金額を割引

下記の例は、1個325円のりんごを何個購入するかを入力することで、合計金額が表示されるようにします。
また、3個以上購入すると1割引されるようにしました。

script.py
from utils import FruitMenu

fruit_menu1 = FruitMenu('りんご', 325) 

print(fruit_menu1.fruit_info())

count = int(input('購入するりんごの個数を入力してください(3個で1割引):'))

result = fruit_menu1.get_total_price(count)

print('合計金額は'+ str(result) +'円です')
utils.py
class FruitMenu:

    def __init__(self, name, price):
        self.name = name
        self.price = price

    def fruit_info(self):
        return self.name + ':' + str(self.price) + '円です'

    def get_total_price(self, count):
        total_price = self.price * count

        if count >= 3:
            total_price *= 0.9

        return round(total_price)   # 四捨五入するためにroundを用います
出力結果
りんご:300円です
購入するりんごの個数を入力してください(3個で1割引):2    と入力した場合、
合計金額は650円です

りんご:300円です
購入するりんごの個数を入力してください(3個で1割引):3    と入力した場合、
合計金額は878円です

上記では、関数get_total_price()を呼び出し、りんごの購入する個数に対する金額を戻り値として返すように処理になっています。
まず、1個325円のりんごを購入する個数でかけて、変数total_priceに入れます。
そして、3個以上だと1割引なので、if文を用いて条件式count >= 3とし処理をtotal_price *= 0.9と記述することで、購入する個数が3個以上であれば合計金額から1割引である0.9をかけ、再び変数total_priceに入れます。2個以下の場合は処理させる必要が無いので、elseを用いて処理を記述する必要はありません。
そして呼び出し元に返す時、料金では小数点は必要ないので整数で出力するためにroundを用います。
これにより、整数で求めていた合計金額を出力することができます。

round

roundを用いることで、小数を四捨五入した結果の整数を取得することができます。

number = 7 * 0.6
print(round(number))
出力結果
4
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0