format() int as float



我想知道它是否有办法做我想做的事。

使用format字符串内置方法,可以将浮点值打印为int:

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

也可以通过扩展类字符串来实现这一点。格式化程序:

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}", "", 1234.567)  # returns "1234"

我想做什么

我想将int打印为浮点:

some_int = 12345678
print '{WHAT?}'.format(some_int) # I want 1234.5678
print '{WHAT ELSE?}'.format(some_int) # I want 123456.78

你知道怎么做吗?

使用format或其他任何东西,但请记住我事先不知道小数位数

您可以将数字除以10000或100:

some_int = 12345678
print '{0:.4f}'.format(some_int / 10000.0)
print '{0:.2f}'.format(some_int / 100.0)

或具有可变小数位数:

decimals = 3
print '{0:.{1}f}'.format(some_int / 10.0**decimals, decimals)