2

我很难将传入的 argv[1] 转换为浮点数。我一直在尝试基本上传入任何 int 后跟小数,并将其向上/向下舍入到最接近的整数。(基本的入门python项目)我现在一直在尝试使用float,但无法弄清楚。

import sys

x = int(sys.argv[1])
num = x + .5
s = str(num())
point = s.find('.')
print s[:point]

if __name__ == "__main__":
    x(int(sys.argv[1]))

编辑(当前代码,咖啡和清理之后):

import sys

def x(argument):
    num = argument + .5
    s = str(num())
    point = s.find('.')
    print s[:point]

if __name__ == "__main__":
    x(int(round(float(sys.argv[1]))))

最终代码(信用归:NPE)

import sys

def x(argument):
    print "Passed in value: " + str(argument)
    num = argument + .5
    print "Rounded whole number: " + str(int(num))

if __name__ == "__main__":
    x(float(sys.argv[1]))
4

1 回答 1

4

听起来你正在寻找

val = round(float(sys.argv[1]))

或者

val = int(round(float(sys.argv[1])))

取决于您期望的类型val

于 2012-12-08T10:17:00.650 回答