皆様いつもお世話になっております。
こちらの自分で書いたテストコードですと
Python
1from decimal import * 2import random 3 4while True: 5 temprature = random.uniform(-40, 40) 6 decimal = Decimal(str(temprature)).quantize(Decimal('.000'), rounding=ROUND_HALF_UP) 7 print str(decimal) + " degree"
結果が
出力結果 15.986 degree -25.159 degree 28.973 degree 18.023 degree 0.978 degree -33.334 degree ........
と思ったように小数点以下の桁数の制御には成功し、文字列とも連結できるのですが、
一方、同じようなコードを書いたのですが
Python
1# coding:utf-8 2import random 3from time import sleep 4from decimal import * 5 6count = 0 7while True: 8 temprature = random.uniform(-40, 40) 9 print temprature 10 if temprature < 15: 11 result = Decimal(str(temprature)).quantize(Decimal('.000'), rounding=ROUND_HALF_UP) 12 print str(result) + " degree" 13 elif temprature >= 15 and temprature <= 25: 14 result = Decimal(str(temprature)).quantize(Decimal('.000'), rounding=ROUND_HALF_UP) 15 print str(result) + " degree" 16 elif temprature > 25: 17 result = Decimal(str(temprature)).quantize(Decimal('.000'), rounding=ROUND_HALF_UP) 18 print str(result) + " degree"
出力結果 10.2167985714 10.217 degree 25.8106230548 25.811 degree -28.2068310375 -28.207 degree 24.2500049195 24.250 degree 36.7781155196 36.778 degree ......
このように、printしていないはずのDecimalの値が出力されてしまいます。
なぜこの2つのコードに違う出力結果が出てしまうのか?
どうしたら元のDecimalの値を出力せずに文字列だけ出力するようにできるのでしょうか?
以上です。アドバイスのほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー