我想知道它是否有办法做我想做的事。
使用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)