使用for循环舍入数字

时间:2015-05-08 01:01:44

标签: python python-3.x rounding

我正在试图弄清楚如何在摄氏度到华氏度转换分配中仅显示小数点后的一位数。到目前为止,唯一一个出现多个数字的是13摄氏度,最终为55.400000000000006。我的陈述看起来像这样。

def main():
    for ct in range (0, 21):
        fe = 9 / 5 * (ct) + 32
        print (ct, "Celsius equals", fe, "Fahrenheit")

就像我说的,该程序按预期运行,我只想清理那个转换。

5 个答案:

答案 0 :(得分:1)

print("%d Celsius equals %.1f Fahrenheit" % (ct, fe))
# => 13 Celsius equals 55.4 Fahrenheit

答案 1 :(得分:0)

您可以使用python函数round()

https://docs.python.org/2/library/functions.html#round

我认为正确的用法是round(fe, 1)

答案 2 :(得分:0)

看起来你可能正在使用Python。要格式化代码,请在每行之前放置四个空格,以使其更具可读性,如下所示:

print (ct, "Celsius equals", round(fe, 1), "Fahrenheit")

如果你想要回答你的答案,请使用Python的round()函数。这会使你的print语句如下:$minus = mysql_query("SELECT * FROM dtr"); while($minusdata = mysql_fetch_array($minus, MYSQL_ASSOC)) { $time = mysql_fetch_assoc(mysql_query("SELECT time_to_sec(timediff(time_out,time_in)) as x from dtr where dtr_id = dtr_id")); $t = $time['x']; mysql_query("UPDATE dtr SET diff = '$t' WHERE dtr_id = dtr_id AND time_out != '00:00:00'"); }

答案 3 :(得分:0)

import math
def main():
    for ct in range (0, 21):
        fe = 9 / 5 * (ct) + 32
        print(ct, "Celsius equals", (math.ceil(fe*100)/100) , "Fahrenheit")

这可能有用。

答案 4 :(得分:0)

您可以显示一个小数点,而无需使用其他运算符,例如roundmath.ceil。 (在python 2.7中,这将是)

'%.1f' % (5.34)

以下是您应该注意使用round函数的一些怪癖:round() in Python doesn't seem to be rounding properly