0

所以我有一个简单的等式,它对作为浮点数导入函数的数字进行四舍五入。以防万一导入的数字说它53.3仍应将其识别为“整数”,但不是当我没有将其设置为浮点数并且我将其设置为整数时,因为有一个“。”

有任何想法吗?

def cm(centimeter):
    result = round(centimeter / 100, 2)
    print ("%d centimeters is the same as %d meters." % (centimeter, result))
    print (result)

cent=input("Centimeters: ")
cm(float(cent))

问题是这就是它的输出:

Centimeters: 53.6
53 centimeters is the same as 0 meters.
0.54

它应该如下所示:

Centimeters: 53.6
53.6 centimeters is the same as 0.54 meters.

拿出打印(结果),我的错。它仍然将它四舍五入到 0 米,但它不应该看到结果如何输出为 0.54。

4

2 回答 2

3

问题在于您的print功能。

你想说:

print ("%.2f centimeters is the same as %.2f meters." % (centimeter, result))

%d将变量格式化为整数;%f将其格式化为浮点数。设置精度:它显示的.2小数位数。

于 2013-10-03T16:52:52.550 回答
1

使您的功能如下:

def cm(centimeter):
    result = round(centimeter / 100, 2)
    print ("%s centimeters is the same as %.2f meters." % (centimeter, result))

演示:

Centimeters: 53.6
53.6 centimeters is the same as 0.54 meters.

另外,请注意,我选择%s在开头使用而不是%.2f. 这样输出将显示整个输入,而不是四舍五入的版本。意思是,如果用户输入类似的53.006内容,它将显示53.006而不是53.01

于 2013-10-03T16:52:59.853 回答