python - format() int 为 float

标签 python format

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

使用 format string 内置方法,可以将 float 打印为 int :

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

也可以通过扩展类 string.Formatter 来做到这一点:

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 打印为 float :

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)

关于python - format() int 为 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33854486/

相关文章:

python - 如何在 Flask 中获取 POSTed JSON?

python - 在不知道形状的情况下加载 np.memmap

python - 循环两个 Pandas 数据框并应用函数计算城市给定距离内的机场

C 代码删除文件中的 ^M/Windows 最后一个字符?

python - 使用格式运算符 % 将 RGB 值的 numpy 数组转换为十六进制

python - 如何将两个后续事件绑定(bind)到 python 中的一个回调?

python - 有没有办法告诉 Flask 忽略路径?

java - 如何确定文件格式? DOS/Unix/MAC

java - printf %f 具有动态长度

emacs - 如何在 Emacs 组织模式中插入带有日期和时间的日程表