プロが教える店舗&オフィスのセキュリティ対策術

Pythonで辞書内のValueをfor k,v文で取り出したときに小数点が勝手に切り捨てられてしまいます。
どこかにfloatをかませるべきですよね?どうしても上手くいきません。

質問者からの補足コメント

  • 写真をつけ忘れていたので添付します。このような状況です…

    「Pythonで辞書内のValueをfor」の補足画像1
      補足日時:2021/07/08 02:26

A 回答 (2件)

for k,v in 辞書: とやっても、keyもvalueも元の型のままで、勝手に変わりません。


「小数点が勝手に切り捨てられ」たりはしません。

・本当に切り捨てられているのか?
 辞書に代入する段階で既に切り捨てられていないか?
 format関数等で小数点より上だけ表示するように指定してたりしないか?
 kやvの型はどうなっているのか?(type関数で確認できる)?
あたりを中心に、「思った通り」に動いているかどうか確認しましょう。
    • good
    • 1
この回答へのお礼

回答ありがとうございます!
出力の仕方に原因がありました…1つずつしっかりと確認することが大切だと学びました。ありがとうございました!

お礼日時:2021/07/08 02:40

「小数点が勝手に切り捨てられて」るんじゃなくって、%dで整数として出力してるのが原因です。



正しくはこんなカンジ。

>>> d = {'A': 44.5, 'B': 78.2, 'C': 50.0}
>>> for k, v in d.items():
   print("{0} {1}".format(k, v))


A 44.5
B 78.2
C 50.0
>>>
    • good
    • 1
この回答へのお礼

そこは盲点でした…自力ではどうしても気づくことができなかったので助かりました。ありがとうございました!

お礼日時:2021/07/08 02:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!