我在这段代码的输出中得到了很多小数(华氏到摄氏度转换器)。

我的代码目前看起来是这样的:

def main():
    printC(formeln(typeHere()))

def typeHere():
    global Fahrenheit
    try:
        Fahrenheit = int(raw_input("Hi! Enter Fahrenheit value, and get it in Celsius!\n"))
    except ValueError:
        print "\nYour insertion was not a digit!"
        print "We've put your Fahrenheit value to 50!"
        Fahrenheit = 50
    return Fahrenheit

def formeln(c):
    Celsius = (Fahrenheit - 32.00) * 5.00/9.00
    return Celsius

def printC(answer):
    answer = str(answer)
    print "\nYour Celsius value is " + answer + " C.\n"



main()

我的问题是,如何让程序把每个答案四舍五入到小数点后2位?


当前回答

可以使用round函数,它的第一个参数是数字,第二个参数是小数点后的精度。

在你的情况下,它将是:

answer = str(round(answer, 2))

其他回答

因为你想要你的答案在十进制数字,所以你不需要类型转换你的答案变量str在printC()函数。

然后使用printf风格的字符串格式

使用str.format()的语法显示两个小数点后的答案(不改变答案的底层值):

def printC(answer):
    print("\nYour Celsius value is {:0.2f}ºC.\n".format(answer))

地点:

:介绍格式规范 0为数字类型启用可识别符号的零填充 .2将精度设置为2 F将该数字显示为一个定点数

截2指炎:

somefloat = 2.23134133
truncated = int( somefloat * 100 ) / 100  # 2.23

可以使用round函数,它的第一个参数是数字,第二个参数是小数点后的精度。

在你的情况下,它将是:

answer = str(round(answer, 2))

你可以使用round函数。

round(80.23456, 3)

会给你80.234的答案吗

在你的情况下,使用

answer = str(round(answer, 2))