Python浮点数的Format truncated字符串中的int格式该如何设置?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

代码如下:

some_float = 1234.5678
print '%02d' % some_float  # 1234

some_float = 1234.5678
print '{WHAT?}'.format(some_float) # I want 1234 here too

我不想用format(..., int(some_float)。

提问于
用户回答回答于

可以通过扩展类来扩展标准字符串格式:

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
用户回答回答于

这样做是可行的:

from math import trunc
some_float = 1234.5678

print '{:d}'.format(trunc(some_float))
=> 1234

或者就这样做,就这样:

print trunc(some_float)
=> 1234

扫码关注云+社区

领取腾讯云代金券