圆形以显示圆柱输出的一个小数位

时间:2017-07-12 18:47:19

标签: python python-2.7 python-3.x

如何对答案进行舍入,以便在输出中显示一个小数位?例如:如果半径为8,则输出为1005.3。截至目前,它只显示1005

import math 
import sqrt
import math

def find_volume(radius, height):
    return pi * radius * radius * height

def print_results (radius,height):
    print 'Volume = '

def find_surface_area(radius, height):
     return 2 * math.pi * radius * height + 2 * math.pi * 
     math.pow(radius,2)

def print_results (radius,height):
    print 'Surface = '

def main():
    radius = float(input("Enter value for a Radius: "))
    height = float(input("Enter value for a Height: "))
    print("Cylinder volume: %d" % (find_volume(radius, height)))
    print("Cylinder surface area: %d" % (find_surface_area(radius,height))

if __name__ == "__main__":
    main()

4 个答案:

答案 0 :(得分:1)

这个问题可能有所帮助:Python 2.7: %d, %s, and float()

当您打印结果时,您正在使用%d代表整数。而是尝试%10.1f

答案 1 :(得分:1)

首先是一些语法错误:

如果你使用的是python 3,那么

OnClientClick="showIcon"应该是function showIcon() { document.getElementById('#myBtnId').innerHTML = <i class='fa fa-spinner fa-pulse btn-red'/></i>" } ,否则这是正确的,但主函数中的print语句是错误的

此外,您在主函数和正在使用的print 'Surface = '函数的最后一个print语句中缺少括号print('Surface= '),如果您使用find_volume,则必须使用pi你不做math.pi。 此外,您不必两次导入数学

如果你想要一个带小数点后1位的浮点数你必须使用from math import pi但是当半径为8且高度为3时,这会给出%f % round(find_surface_area(radius,height),1)),但是你可以使用.format {}来代替它对我来说正确(我在python 3上)

下面的代码应该可以使用

552.900000

答案 2 :(得分:0)

你可以这样做:

>>> a=165.1984965468
>>> "%.2f" % round(a,2)
'165.20'

修改

>>> "%.1f" % round(a,1)
'165.2'

答案 3 :(得分:0)

您可以尝试这种方式:

    static CanonCamera dslr;
    static boolean connected = false;

    public static void init() {
        dslr = new CanonCamera();    //This line throws the error
        dslr.openSession();
        connected=true;
    }