无法返回-1.00的浮点值

时间:2017-03-18 13:13:53

标签: python-3.x

我目前正在大学攻读计算机科学论文。我是第一年。

在其中一个问题中,如果性别不正确,则假设该函数返回值-1。但在测试专栏中,它表示预期值为-1.00。我似乎无法返回'-1.00'的值,它将始终返回值-1.0(一个零)。我使用.format来设置值2sf(所以它会出现两个零)但是当它转换为float时,值总是返回“-1.0”。

return float('{:.2f}'.format(-1))

3 个答案:

答案 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

http://ideone.com/GyINQR

没有必要明确地将-1转换为float

print('{:.2f}'.format(-1))

给出了期望的结果:
http://ideone.com/U2RTMX