如何使用Python保留两位小数?

629

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

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

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位?


11
关于你的代码,有一个小注释。没有必要将华氏温度值作为全局变量保存,将其作为参数传递到函数中就足够了(而且更好)。因此,请删除 "global Fahrenheit" 行。 在 formeln 函数中,将参数名称改为函数 "Fahrenheit",即 formeln(Fahrenheit)。 至于舍入,您只需使用 "%" 参数来仅显示前两位数字,并且应对这些数字进行舍入。在 formeln 中提供的公式中,提供的数字位数不会受到影响。 - arieli
21个回答

0

由于您想要以十进制数形式获得答案,因此在printC()函数中不需要将answer变量转换为str。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接