gpt4 book ai didi

python - 当一个数字可以完全整除时,如何在python中显示两个小数点?

转载 作者:行者123 更新时间:2023-12-05 00:51:54 28 4
gpt4 key购买 nike

目前我正在尝试解决一个问题,我应该将答案打印到小数点后两位不四舍五入。为此,我使用了以下代码

import math
a=1.175 #value of a after some division
print(math.floor(a*100)/100)

我们得到的输出是:

1.17                              #Notice value which has two decimal points & not rounded

但是当我尝试打印一个可整除的数字时,真正的问题就开始了,小数点后只显示一个零。我已经使用了与上面相同的代码,但是现在

a=25/5                                   #Now a is perfectly divisible
print(math.floor(a*100)/100)

现在显示的输出是

5.0                                      #Notice only one decimal place is printed

必须做些什么来纠正这个错误?

最佳答案

除法有效并在结果中返回足够的精度。

所以你的问题只是关于可视化或确切地说:

  • 字符串表示的 float

格式化小数

您可以为此使用 字符串格式。例如在 Python 3 中,使用 f-strings:

twoFractionDigits = f"{result:.2f}"

print(f"{result:.2f}")

诀窍是.2f,一个字符串格式化文字格式说明符,代表一个 float (f),小数点后有两位小数 (.2)。

另见:

尝试 Python-shell:

Python 3.6.9 (default, Dec  8 2021, 21:08:43) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> a=1.175 #value of a after some division
>>> result = math.floor(a*100)/100
>>> result
1.17
>>> print(result)
1.17
>>> a=25/5 #Now a is perfectly divisible
>>> result = math.floor(a*100)/100
>>> result
5.0
>>> print(result)
5.0
>>> print(f"{result:.2f}")
5.00

将小数格式化为百分比

类似地,您可以将比率表示为百分比:print(f"{result:.2f} %")

打印:

5.00 %

格式百分比的快捷方式可以是:print(f"{25/100:.2%}")它将 25/100 == 0.25 的结果转换为:

25.00%

注意:formatting-literal .2% 会自动将比率转换为小数点后两位的百分比,并添加百分比符号。

用特定的比例格式化小数(四舍五入或截断?)

现在没有四舍五入的部分,只是截断。例如,我们可以使用 repeating decimal ,例如1/6 需要在固定数量的小数位数之后进行 四舍五入截断(截断) - 刻度(相对于精度)。

>>> print(f"{1/6:.2}")
0.17
>>> print(f"{1/6:.2%}")
16.67%

注意格式化后的字符串不是被截断(到 0.16)而是四舍五入(到 0.17)。这里 scale 在formatting-literal 中被指定为2(在点之后)。

另见:

以固定宽度(前导空格)格式化许多小数

另一个例子是打印多个小数,例如在列中右对齐,这样您就可以轻松地比较它们。

然后使用字符串格式文字6.2f添加前导空格(这里固定宽度为6):

>>> print(f"{result:6.2f}")
5.00
>>> print(f"{100/25*100:6.2f}")
400.00
>>> print(f"{25/100*100:6.2f}")
25.00

另见

这里演示的所有格式文字也可以使用

  • 继承自 printf method 的旧式 %-formatting(也称为“模字符串格式”) C语言的。好处:这种方式也兼容3.6之前的Python)。
  • 字符串上的新样式 .format 方法(Python 3 引入)

theherk's answer这展示了这些替代方案。

详细了解 Python 中的字符串格式化:

关于python - 当一个数字可以完全整除时,如何在python中显示两个小数点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70882733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com