来自argv的浮点问题

时间:2012-12-08 10:06:43

标签: python argv

我很难将传递的argv [1]转换为浮点数。我一直试图基本上传入任何int后跟一个小数,并将它向上/向下舍入到最接近的整数。 (基本的启动python项目)我一直试图玩浮动一点,现在只是想弄清楚。

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]))

1 个答案:

答案 0 :(得分:4)

听起来你正在寻找

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

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

取决于您期望val的类型。