我的代码,

print ("Welcome to the Imperial to Metric converter")

choice = int(input("For Fahrenheit to Celsius press 1, Feet to Meters press 2, Pounds to Kilograms press 3: "))

if choice != 1 and 2 and 3:
  print ("Choose a valid function")
else:
  value = float(input("Select the value you wish to convert: "))
  def convert(value):
    if choice == 1:
      return (value - 32) * (5/9)
    elif choice == 2:
      return value / 3.2808
    elif choice == 3:
      return value  / 2.2046

  print ("%.2f" %(float(convert(value))))

这是我到目前为止所拥有的,并希望将答案打印到用户将值设置为的任何小数位,假设他们想转换 42.78 华氏度我想给出答案为 xx.xx

最佳答案

您可以使用 round() ,它可以让您更轻松地指定小数位:

>>> round(1.23234, 2)
1.23

因此,要将其应用于您的代码,您需要首先将它们的输入存储为 string,以便您可以计算出要舍入的数量,然后在最后舍入:
print ("Welcome to the Imperial to Metric converter")

choice = int(input("For Fahrenheit to Celsius press 1, Feet to Meters press 2, Pounds to Kilograms press 3: "))

if choice not in (1, 2, 3):
  print ("Choose a valid function")
else:
  s = input("Select the value you wish to convert: ")
  value = float(s)
  def convert(value):
    if choice == 1:
      return (value - 32) * (5/9)
    elif choice == 2:
      return value / 3.2808
    elif choice == 3:
      return value  / 2.2046

 print(round(float(convert(value)), len(s.split(".")[1])))

当我输入时:
count <== 1
value <== 567.123

给出了正确的结果:
297.291

关于python - 我如何将浮点数打印到python中用户指定值的小数位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47838333/

10-10 11:47