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

2024-04-23

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

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

必须采取什么措施来纠正这个错误?


除法工作并返回足够精度的结果。

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

  • 字符串表示浮点数的

设置小数格式

您可以使用字符串格式化为了那个原因。 例如,在 Python 3 中,使用F 弦:

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

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

技巧确实如此.2f, 一个字符串格式化文字 or 格式说明符表示一个浮点数(f) 小数点后有两位小数位 (.2).

也可以看看:

  • 使用 f 字符串固定小数点后的数字 https://stackoverflow.com/questions/45310254/fixed-digits-after-decimal-with-f-strings
  • 如何在Python中将浮点数格式化为固定宽度 https://stackoverflow.com/questions/8885663/how-to-format-a-floating-number-to-fixed-width-in-python/8885688#8885688

尝试使用 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} %")

prints:

5.00 %

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

25.00%

注意:格式文字.2%自动将比率转换为小数点后 2 位数字的百分比,并添加百分号。

使用特定的格式设置小数scale(四舍五入还是截断?)

现在的部分没有四舍五入,只是截断。 作为例子,我们可以使用重复小数 https://en.wikipedia.org/wiki/Repeating_decimal, e.g. 1/6这需要是rounded or 被截断的(截止)固定数量的小数位后 -scale(相比之下精确).

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

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

也可以看看:

  • Python中截断至小数点后三位 https://stackoverflow.com/questions/8595973/truncate-to-three-decimals-in-python
  • 如何解释数据库中数字的精度和小数位数? https://stackoverflow.com/questions/2377174/how-do-i-interpret-precision-and-scale-of-a-number-in-a-database
  • 精度和规模有什么区别? https://stackoverflow.com/questions/5689369/what-is-the-difference-between-precision-and-scale

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

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

然后使用字符串格式化文字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

See also

此处演示的所有格式化文字也可以使用

  • 老式%-格式(也称为“模字符串格式化”)继承自printf method https://en.wikipedia.org/wiki/Printf_format_stringC语言的。好处:这种方式也兼容Python 3.6之前的版本)。
  • 新风格.format字符串方法(Python 3 引入)

See 瑟克的回答 https://stackoverflow.com/a/70882763/5730279它展示了这些替代方案。

了解有关 Python 中字符串格式的更多信息:

  • 真正的Python:Python 3 的 f-Strings:改进的字符串格式化语法(指南) https://realpython.com/python-f-strings/
  • 真正的Python:Python 字符串格式化最佳实践 https://realpython.com/python-string-formatting/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当一个数字完全整除时,如何在 python 中显示两个小数点? 的相关文章

  • Python 3.0 使用turtle.onclick

    所以这是我的问题 我必须为我的计算机科学课程制作一张图片 而在海龟中进行估计确实令人沮丧 我计划使用 onclick 来显示我的位置 import turtle as t def getPos x y print x y return de
  • Flask:缓存静态文件(.js、.css)

    我真的找不到任何这方面的资源 那么如何将视图 函数的缓存与静态文件 即 css js 分开 我想将静态对象缓存一周 另一方面 我只需要缓存函数 视图几分钟 当我执行以下操作时 from flask ext cache import Cach
  • 使用 Tkinter 进行多线程 Python

    我用这些函数在画布上画小圆圈 这是绘制圆圈的函数 class Fourmis def init self can posx posy name radius self can can self largeur can int self ca
  • Conda 无法在 Powershell 中激活

    我已经在我的 Windows 10 笔记本电脑上安装了 anaconda 我正在尝试激活名为的Python环境pyenv 首先 我检查conda env list在我的笔记本电脑中 这是 powershell 上的输出 PS C Users
  • Windows 中的信号处理

    在Windows中 我试图创建一个等待SIGINT信号的python进程 当它收到SIGINT时 我希望它只打印一条消息并等待SIGINT的另一次出现 所以我使用了信号处理程序 这是我的 signal receiver py 代码 impo
  • 使用 theano 进行多处理

    我正在尝试将 theano 与 cpu 多处理和神经网络库 Keras 结合使用 I use device gpu标记并加载 keras 模型 然后 为了提取超过一百万张图像的特征 我使用多处理池 该函数看起来像这样 from keras
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • 定义Python字典时,如何使用给定字段的值来计算其他字段?

    考虑代码 a 2 b 3 mylist a a b b product a b 这会生成一个包含三个字段的字典 其中第三个字段是使用第一个和第二个字段的值计算的 我正在寻找更紧凑的定义mylist 我已经尝试过 1 mylist a 2 b
  • 将这个使用 lambda 解包的元组从 Python 2 移植到 Python 3 的最 Pythonic 方法

    我有以下 Python 2 代码 它在 lambda 中解压元组 该 lambda 包含在 for 循环内 for lab lab pred length in zip labels labels pred sequence lengths
  • 包含可变数据的正则表达式 - ply.lex

    我正在使用 python 模块ply lex编写一个词法分析器 我用正则表达式指定了一些标记 但现在我卡住了 我有一个list of Keywords谁应该是token data是一个包含大约 1000 个关键字的列表 这些关键字都应该被识
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 如何判断Python对象是否是字符串?

    如何检查 Python 对象是否是字符串 常规字符串或 Unicode Python 2 Use isinstance obj basestring 对于要测试的对象obj Docs https docs python org 2 7 li
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 使用每日频率格式化 x 轴

    我正在尝试获取每日数据图 我有 3 个月的数据 每天都很难指出 如何格式化 x 轴 以便我可以获得每个日期 可以使用以下命令更改主要刻度的频率set major locator mdates DayLocator interval 5 如下
  • numpy 中的分层抽样

    在 numpy 中我有一个这样的数据集 前两列是索引 我可以通过索引将数据集分成多个块 即第一个块是 0 0 第二个块是 0 1 第三个块 0 2 然后是 1 0 1 1 1 2 等等 每个块至少有两个元素 索引列中的数字可能会有所不同 我
  • 有没有办法只从 python 列表中输出数字?

    简单的问题 list 1 asdada 1 123131 131 blaa adaraerada 0 000001 34 12451235265 stackoverflow is awesome 我想创建一个list 2这样它只包含数字 l
  • 如何从 Python 脚本捕获 Curl 的输出

    我想使用curl查找有关网页的信息 但在Python中 到目前为止我有这个 os system curl head www google com 如果我运行它 它会打印出 HTTP 1 1 200 OK Date Sun 15 Apr 20
  • 多行 x 刻度标签

    我正在尝试制作类似于此 Excel 示例的图 我想知道 x 刻度标签上是否有第二层 例如 5 年统计摘要 我知道我可以使用制作多行刻度标签 n但我希望能够独立地转换这两个级别 这很接近 fig plt figure figsize 8 4
  • 如何在Python中从stdin中逐行读取

    每个人都知道如何在 C 中计算 STDIN 中的字符 但是 当我尝试在 python3 中执行此操作时 我发现这是一个难题 计数器 py import sys chrCounter 0 for line in sys stdin readl
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or

随机推荐