在Python中使用round()对总和进行舍入

在Python中使用round()对总和进行舍入,python,Python,我对Python2.7非常陌生(就像新的第一天),我正在尝试编写一个简单的Mils到学位转换程序作为学习练习。程序要求用户选择从度转换为密耳,或从度转换为密耳,然后要求输入值。它相应地进行除法或乘法,并打印转换后的答案。这就是问题所在。转换后的答案不应作为精确的浮点数返回。例如,如果用户输入6400密耳,我希望程序返回360度(1度=17.78密耳),而不是359.955度。我对round函数(有限)的理解是,它接受浮点和精度级别,但不接受变量。如何将总和传递到舍入() 非常感谢您的意见 imp

我对Python2.7非常陌生(就像新的第一天),我正在尝试编写一个简单的Mils到学位转换程序作为学习练习。程序要求用户选择从度转换为密耳,或从度转换为密耳,然后要求输入值。它相应地进行除法或乘法,并打印转换后的答案。这就是问题所在。转换后的答案不应作为精确的浮点数返回。例如,如果用户输入6400密耳,我希望程序返回360度(1度=17.78密耳),而不是359.955度。我对round函数(有限)的理解是,它接受浮点和精度级别,但不接受变量。如何将总和传递到舍入()

非常感谢您的意见

import sys
import math

def menu():

    print ""
    print " Mils / Degrees Conversion Calculator"
    print "-" * 38
    print ""
    print "Options: "
    print "1. Degrees to Mils"
    print ""
    print "2. Mils to Degrees"
    print ""
    print "3. Quit"
    print "-" * 20
    print""
    return input ("Choose your option: ")
    print ""

#This function contains my attempt at rounding the sum and returns errors
def m2d(a):
    print "Enter azimuth in mils (ex. 6400)"
    b = 17.78
    c = a / b
    print a, " mils = ", c, "degrees"
    round(c[])

#This function works as intended but does not include round()
def d2m(b):
    print "Enter azimuth in degrees (ex. 90)"
    a = 17.78
    print b, " degrees = ", b * a, "mils"


loop = 1
choice = 0
while loop == 1:
    choice = menu()
    if choice == 1:
       d2m(input("Degrees: "))

    elif choice == 2:
        m2d(input("Mils: "))

    elif choice == 3:
        loop = 0
有关round()的详细信息,请参见:

如果打印时不需要小数点,可以将替换
c
替换为
int(c)

另外,当您说print var1、var2时,它会自动在两者之间留出一个空格。您可能要尝试:

    print a, "mils =", c, "degrees"
有关round()的详细信息,请参见:

如果打印时不需要小数点,可以将替换
c
替换为
int(c)

另外,当您说print var1、var2时,它会自动在两者之间留出一个空格。您可能要尝试:

    print a, "mils =", c, "degrees"

您可以将float作为变量传递

round(c, 2)

将c四舍五入到小数点后两位。

将浮点作为变量传递

round(c, 2)

将c四舍五入到小数点后两位。

对于第1天的知识,您对python的概念理解得相当透彻。现在,代码中有些东西可以更改,以使某些输入更容易,但修改起来非常简单:

c = a / b
c = round(c)

看起来您正在舍入变量而不更改变量本身,这就是导致问题的原因。

对于第1天的知识,您已经非常了解python的概念。现在,代码中有些东西可以更改,以使某些输入更容易,但修改起来非常简单:

c = a / b
c = round(c)

由于您似乎在对变量进行四舍五入而没有更改变量本身,这就是导致问题的原因。

您将浮点作为变量进行传递
四舍五入(c,2)
c
四舍五入到小数点后两位。补充回答,谢谢,尼克。我曲解了文件,实际上把括号放在了论点中。消除这些错误会停止错误。您可以将浮点作为变量
四舍五入(c,2)
c
四舍五入到小数点后两位。补充回答,谢谢,尼克。我曲解了文件,实际上把括号放在了论点中。排除这些错误就可以阻止错误了。啊,就是这样!非常感谢你,奥菲恩。这正是我想要的。嗨@Betastate如果你对Ophion的回答感到满意,那么将这个问题标记为已回答是很好的礼仪。你可以勾选问题旁边的勾号。我很抱歉,@NickPerkins。我也是这种论坛的新手。谢谢你的信息。啊,就是这样!非常感谢你,奥菲恩。这正是我想要的。嗨@Betastate如果你对Ophion的回答感到满意,那么将这个问题标记为已回答是很好的礼仪。你可以勾选问题旁边的勾号。我很抱歉,@NickPerkins。我也是这种论坛的新手。感谢您提供的信息。“关于第1天的知识,您已经非常了解python的概念了。”谢谢,海尔。我确实有一点C语言的经验。这一知识对于理解基本的格式、语法等都有一定的帮助。它不是完全类似的,但它给了我一些可以使用的东西。当他们说Python比C族语言简单得多时,他们并不是在开玩笑。“就第一天的知识而言,你对Python的概念理解得很好。”谢谢,海尔。我确实有一点C语言的经验。这一知识对于理解基本的格式、语法等都有一定的帮助。它不是完全类似的,但它给了我一些可以使用的东西。他们说Python比C族语言简单得多,这不是开玩笑。