python - 如何格式化 float 的输出,使其在小数点后有两位?

标签 python string python-3.x formatting python-3.6

这应该是一个非常简单的问题,但我在这方面遇到的困难比预期的要困难。我想让我的 float 变成字符串,但仅限于小数点后第二位。除了一些决定扩展超过 2 个小数点的值之外,我所拥有的都有效。以下是我目前正在尝试的:

for i in range(len(self.monthlyData)):
        t = self.monthlyData[i] * 100
        '{0:.2}'.format(t)
        t = str(t) + " %"
        self.monthlyData[i] = t

我希望我的值是小数后跟%符号。所以我希望它看起来像这样“19.58%”,就像我说的,它适用于大多数值,但有些值如 29.080000000000002 并保持这样。

最佳答案

我完成任务的方式:

for i in range(len(self.monthlyData)):
    t = '{0:.2%}'.format(self.monthlyData[i])
    self.monthlyData[i] = t

但说真的,您不必循环遍历 pandas 列来修改值。更好的方法是使用 apply 方法和 lambda:

self.monthlyData.apply(lambda x: '{0:.2%}'.format(x))

更多信息可以查看官方documentation

关于python - 如何格式化 float 的输出,使其在小数点后有两位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216628/

相关文章:

python - 使用 Sphinx 自动记录 Python

python - 如何将长字符串的定义拆分为多行?

python - 最有效的方法(lo <= k && k <= hi)? 1 : 0 for k a numpy array, lo, hi 常量

python - Pytest 断言方法的返回值

c++ - 按指定的分隔符拆分 wstring

javascript - Python Selenium 按钮未被点击

python - 装饰一个已经是类方法的方法?

python - 在 python os 库中,进程被阻止

string - 在 Rust 中将 Vec<String> 转换为 &str 的一部分?

python - 将 "word strings"和 "number strings"的列表转换为 "number strings"仅转换为数字的列表