format()int as float

时间:2015-11-22 11:58:52

标签: python format

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

使用 Product A = new Product("Pencil", 1.50f, 300); Product B = new Product("Eraser", 0.50f, 200); Product C = new Product("Paper", 4.95f, 100); // no need for a observable list here Product[] products = new Product[]{A, B, C}; Summary summary = new Summary(); summary.itemsSummary.setAll(products); for (Product p : products) { System.out.println(p.toString()); } ... 字符串内置方法,可以将浮点数打印为int:

format

通过扩展课程string.Formatter

也可以做到这一点
some_float = 1234.5678
print '%02d' % some_float  # 1234

我想做什么

我想将一个int打印为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}", "", 1234.567)  # returns "1234"

你知道怎么做吗?

使用some_int = 12345678 print '{WHAT?}'.format(some_int) # I want 1234.5678 print '{WHAT ELSE?}'.format(some_int) # I want 123456.78 或其他任何内容但请注意我事先并不知道小数位数

1 个答案:

答案 0 :(得分:6)

您可以将您的号码除以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)