I tried creating a temperature converter below:
from decimal import *
getcontext().prec = 10
celsius = Decimal(12)
fahrenheit = celsius*9/5+32
kelvin = celsius+Decimal(273.15)
romer = celsius*21/40+Decimal(7.5)
When converted to a string, fahrenheit
returns 53.6
and romer
returns 13.8
, both with no additional decimal places. However, kelvin
returns 285.1500000
. (This isn't even 285.1500001
). How do I make sure it returns just enough places, i.e. 285.15
? I assume it is not a problem with adding floating decimals because romer
is fine.