2017-06-27 6 views
4

私は十進法除算の残りの部分を得る無限の方法を探しています。python3で小数除算の余りを得るには?

私の使用例はここにいくつかの製品に1つの価格を派遣したいと考えています。たとえば、3つのアイテムで10ドルのオーダーを得て、セントを失うことなく3つの製品に価格を派遣したいと思っています:)

そして、それは価格なので、

price = 10 
number_of_product = 3 

price_per_product = int(price/number_of_product) 
# price_per_product = 3 
remainder = price % number_of_product 
# remainder = 1 

感謝:

from decimal import Decimal 

twoplaces = Decimal('0.01') 

price = Decimal('10') 
number_of_product = Decimal('3') 

price_per_product = price/number_of_product 

# Round up the price to 2 decimals 
# Here price_per_product = 3.33 
price_per_product = price_per_product.quantize(twoplaces) 

remainder = price - (price_per_product * number_of_product) 
# remainder = 0.01 

私は例えば整数のためのように、それを行うにはより多くの神託の方法があるかどうかを知りたい:これまでのところ、ここで

は、私が見つけた解決策であります君は !

答えて

4

あなたの価格に100を掛けてセントに変換し、数をセントで変換してから、セントに変換します。

price = 10 
number_of_product = 3 

price_cents = price * 100 

price_per_product = int(price_cents/number_of_product)/100 
# price_per_product = 3 
remainder = (price_cents % number_of_product)/100 
# remainder = 1 

次に、Decimalを使用して文字列に変換します。

+0

重要なキーワード:整数! –

+1

私はそれが好きです! :)ありがとう – Thom

+0

あなたは大歓迎です!そして、あなたのおかげで、今私はコメントするのに十分な評判を持っています。 :D –

関連する問題