我目前正在大学攻读计算机科学论文。我是第一年。
在其中一个问题中,如果性别不正确,则假设该函数返回值-1。但在测试专栏中,它表示预期值为-1.00。我似乎无法返回'-1.00'的值,它将始终返回值-1.0(一个零)。我使用.format来设置值2sf(所以它会出现两个零)但是当它转换为float时,值总是返回“-1.0”。
return float('{:.2f}'.format(-1))
答案 0 :(得分:1)
这不是很清楚。你的导师还是测试人员
软件需要一个字符串'-1.00'
?如果是这样,那就回去吧。是一个
预计float
类型?然后返回-1.0
;显示的位数
不影响价值。
答案 1 :(得分:0)
我不确切知道你做了什么,但我尝试过这种方式并输出你所期望的。
b = -1
>>> print("%.2f" % (b))
-1.00
>>> print("%.2f" % (-1))
-1.00
答案 2 :(得分:0)
以下代码有何作用?
print(float('{:.2f}'.format(-1)))
'{:.2f}'.format(-1)
创建由格式字符串定义的-1.
字符串表示形式。 float(...)
将此字符串转换为float 1.
print命令使用某种默认格式将此float转换为sting,并将此字符串输出到屏幕。我认为这不是您的预期,因为您使用的格式在格式化字符串时不会影响print命令。
我想你想要
print('{:.2f}'.format(float(-1)))
这实际上做你想要的,它打印
1.00
没有必要明确地将-1
转换为float
print('{:.2f}'.format(-1))
给出了期望的结果:
http://ideone.com/U2RTMX