我很难将传递的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]))
答案 0 :(得分:4)
听起来你正在寻找
val = round(float(sys.argv[1]))
或
val = int(round(float(sys.argv[1])))
取决于您期望val
的类型。