【ABC169 C】「Multiplication 3」を解く【Python3】

「AtCoder」解説一覧へ

「A×B」の小数点以下を切り捨てて、整数で出力する問題です。

提出
from decimal import Decimal

a, b = map(Decimal, input().split())
print(int(a*b))

Bが小数第2位まで与えられるのですが、これを浮動小数点数として扱うと、演算をした際に、(プログラムは2進数で計算するため)結果に誤差が生じてしまい、テストケースによっては「WA」になってしまいます。

pythonのdecimalモジュールを用いることで、10進数での計算結果を得ることができます。

「decimal — 十進固定及び浮動小数点数の算術演算」(公式サイト)
https://docs.python.org/ja/3.8/library/decimal.html

【ABC169】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です