結果
問題 |
No.9003 小数誤差テスト(テスト用)
|
ユーザー |
![]() |
提出日時 | 2025-03-20 20:21:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 113 ms / 5,000 ms |
コード長 | 1,154 bytes |
コンパイル時間 | 220 ms |
コンパイル使用メモリ | 82,600 KB |
実行使用メモリ | 80,700 KB |
最終ジャッジ日時 | 2025-03-20 20:23:02 |
合計ジャッジ時間 | 1,473 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 |
ソースコード
import sys from decimal import Decimal, getcontext getcontext().prec = 20 def main(): s = sys.stdin.readline().strip() print("decimal") if '.' in s: parts = s.split('.') decimal_part = parts[1] if len(decimal_part) == 4: print(s) return else: n = Decimal(s) delta = Decimal('0.0001') result = n + delta else: n = Decimal(s) if n == 0: print("0.0001") return else: delta = n * Decimal('0.0001') result = n + delta formatted = format(result.normalize(), 'f') if 'e' in formatted or 'E' in formatted: formatted = format(result, 'f') if '.' in formatted: integer_part, fractional_part = formatted.split('.') fractional_part = fractional_part[:4].ljust(4, '0') fractional_part = fractional_part.rstrip('0') if fractional_part: print(f"{integer_part}.{fractional_part.rstrip('0')}") else: print(integer_part) else: print(f"{formatted}.0000") if __name__ == "__main__": main()