在 Python 中对数字进行四舍五入但保留末尾的零

2023-11-22

我一直在编写一个脚本,该脚本从 Excel 电子表格中获取数据,对数字进行四舍五入,并删除小数点,例如,2606.89579999999 变为 26069。但是,我需要将数字四舍五入到小数点后两位,即使会有尾随零,因此 2606.89579999999 应变为 260690。

我目前有这样的i从 Excel 单元格中获取数据,并将其四舍五入到小数点后两位 (i = round(i, 2))在上面的例子中给了我一个小数点。

我尝试弄清楚如何让它工作Decimal,但我似乎无法让它工作。

所有其他四舍五入的数字,如果四舍五入的值不以“0”结尾,则可以正常工作round(i, 2),但是如果数字恰好以 *.x0 结尾,那么 0 就会被丢弃并扰乱数据。


当您谈论尾随零时,这是一个关于字符串表示的问题, 您可以使用

>>> "%.2f" % round(2606.89579999999, 2)
'2606.90'

或者使用现代风格format功能:

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'

并删除点replace or translate (_指 python 控制台中上一个命令的结果):

>>> _.translate(None, '.')
'260690'

请注意,此处不需要舍入,因为.2f格式应用相同的舍入:

>>> "%.2f" % 2606.89579999999
'2606.90'

但正如您提到的 Excel,您可能会选择推出自己的舍入函数,或者使用decimal, as float.round由于浮点表示可能会导致奇怪的结果:

>>> round(2.675, 2)
2.67
>>> round(2606.89579999999, 2)
2606.89

带十进制使用quantize:

>>> from decimal import *
>>> x = Decimal('2606.8950000000001')
# Decimal('2606.8950000000001')
>>> '{}'.format(x.quantize(Decimal('.01'), rounding=ROUND_HALF_EVEN))
'2606.90'

对于您最初的任务,这将变为:

>>> x = Decimal('2606.8950000000001')
>>> int((x*100).quantize(1, rounding=ROUND_HALF_EVEN))
260690

奇怪的舍入原因出现在前面Decimal:

>>> x = Decimal(2606.8950000000001)
# Decimal('2606.89499999999998181010596454143524169921875') # internal float repr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中对数字进行四舍五入但保留末尾的零 的相关文章

  • Windows 中的 Python 多处理池奇怪行为

    Python 多处理池在 Linux 和 Windows 之间有不同的行为 当按工作人员数量运行方法映射时 在 Linux 中 它会在您作为参数提供的特定函数的范围内运行该进程 但在 Windows 中 每个工作进程都在父进程的范围内运行
  • 嵌套函数中的变量作用域

    有人可以解释为什么以下程序失败 def g f for in range 10 f def main x 10 def f print x x x 1 g f if name main main 带有消息 Traceback most re
  • MacOS Big Sur 中的 NPM 错误“找不到 Python 可执行文件”

    我已经花了整整一周的时间寻找这个问题的答案 但没有成功 我查看了每个 StackOverflow 帖子 Google 的每一篇文章以及我能找到的每个相关的 Github 问题 大多数相关错误似乎都比较旧 所以我想知道我的问题是否由于我使用的
  • 如何搜索一列并用找到的内容填充另一列?

    我有一个带有虚构人物数据的大熊猫数据框 下面是一个小例子 每个人都由一个数字定义 import pandas as pd import numpy as np df pd DataFrame Number 5569 3385 9832 64
  • 如何同时有效地运行多个 Pytorch 进程/模型? Traceback:分页文件太小,无法完成此操作

    背景 我有一个非常小的网络 我想用不同的随机种子进行测试 该网络几乎只使用了我的 GPU 计算能力的 1 因此理论上我可以同时运行 50 个进程来同时尝试许多不同的种子 Problem 不幸的是我什至无法在多个进程中导入 pytorch 当
  • 按升序对数字字符串列表进行排序

    我创建了一个SQLite https en wikipedia org wiki SQLite数据库有一个存储温度值的表 第一次将温度值按升序写入数据库 然后 我将数据库中的温度值读入列表中 然后将该列表添加到组合框中以选择温度 效果很好
  • Plotly:如何设置文本格式(下划线、粗体、斜体)

    使用注释时 我尝试在绘图中为文本添加下划线 我使用添加注释 import plotly graph objects as go g go FigureWidget make subplots rows 1 cols 1 g update l
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发
  • Python 模块 BeautifulSoup 提取锚点 href

    我正在使用 BeautifulSoup 模块通过以下方式从 html 选择所有 href def extract links html soup BeautifulSoup html anchors soup findAll a print
  • 如何在使用 Flask for Python 3 的同时使用 Bootstrap 4?

    我检查过 发现默认安装时 Flask Bootstrap 原生使用 Bootstrap 3 3 7 但实际上我想通过使用 Flask Bootstrap 包在我的项目中使用 Bootstrap 4 任何有关如何更新它或类似内容的帮助将不胜感
  • Pandas 根据条件替换数据框值

    我有一个主数据框 df Colour Item Price Blue Car 40 Red Car 30 Green Truck 50 Green Bike 30 然后我有一个价格修正数据框 df pc Colour Item Price
  • 在 Keras 中使用有状态 LSTM 训练多变量多级数回归问题

    我有时间序列P过程 每个过程的长度各不相同 但都有 5 个变量 维度 我试图预测测试过程的估计寿命 我正在用有状态的方法来解决这个问题LSTM在喀拉斯 但我不确定我的训练过程是否正确 我将每个序列分成长度的批次30 所以每个序列都是这样的形
  • 我应该在哪里对对象和字段进行 django 验证?

    我正在创建一个 Django 应用程序 它使用 Django Rest Framework 和普通的 django views 作为用户的入口点 我想对模型的独立字段以及整个对象进行验证 例如 字段 根据正则表达式函数输入的车牌是否正确 与
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • model.predict() 返回类而不是概率

    Hello 我是第一次使用 Keras 我训练并保存了一个模型 作为 json 文件及其权重 该模型旨在将图像分为 3 个类别 我的编译方法 model compile loss categorical crossentropy optim
  • 如何使用 QAbstractTableModel(模型/视图)将数据设置到 QComboBox?

    我希望能够设置itemData of a combobox当使用填充时QAbstractTableModel 但是 我只能从模型返回一个字符串data method 通常 当不使用模型时 可以像这样执行 Set text and data
  • 如何使用 Matplotlib 可视化标量二维数据?

    所以我有一个网格网格 矩阵 X 和 Y 以及标量数据 矩阵 Z 我需要将其可视化 最好是一些 2D 图像 在各点处带有颜色 显示 Z 值 我做了一些研究 但没有找到任何能完全满足我想要的效果的东西 pyplot imshow Z 看起来不错
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • nltk 标记化和缩写

    我用 nltk 对文本进行标记 只是将句子输入到 wordpunct tokenizer 中 这会拆分缩写 例如 don t 到 don t 但我想将它们保留为一个单词 我正在改进我的方法 以实现更精确的文本标记化 因此我需要更深入地研究
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o

随机推荐

  • 哪款相机会在移动设备中打开 getUserMedia API?前部还是后部?

    在桌面上使用getUserMedia API访问摄像头时 会打开网络摄像头 当然这对视频通信有帮助 但是在移动设备上使用时会调用哪个摄像头 前置摄像头还是后置摄像头 是否需要代码来选择相机 有一种解决方案 用户可以选择其中一台摄像机 使用
  • 从 PHP 检查 Google 地图点是否在多边形中

    我一直在寻找一种方法来检查一个点是否是多边形的一部分 该多边形是从文件加载的 与这个问题相关的所有答案都是用javascript解决的 但我需要在服务器端执行此操作 这是因为结果不需要作为 Web 客户端显示给用户 而是需要存储并稍后用作参
  • 我想使用 EBImage 包,但它说它不适用于我的 R 版本

    install packages 中的警告 软件包 EBImage 不可用 适用于 R 版本 3 2 4 修订版 现在该怎么办有什么帮助 请指导我 EBImage作为 Bioconductor 项目的一部分分发 要安装包 请使用 sourc
  • MongoDB 不区分大小写的键搜索

    我可以不区分大小写地查询值 但我想不敏感地查询键 以便用户可以以全部小写形式键入它们 这不起作用 因为它不是有效的 JSON lastName i Jones 除了将新的键集合作为值之外 是否有我可以使用的策略 目前还没有办法做到这一点 M
  • 无法在 Google App Engine 中调试 dev_appserver

    我不认为这个问题是 PyDev 所独有的 而是任何 python 调试器所独有的 使用 Eclipse 和 pydev 我无法在 dev appserver Google 应用程序引擎开发服务器 进程中中断 WSGI 处理程序 我不是 10
  • MySQL Workbench 会话看不到数据库更新

    我使用 deb 在 Ubuntu 系统中安装了 MySQL Workbench community 6 2 3 工作台会话似乎没有看到其他会话 应用程序 命令行客户端 对数据库完成的更新 DML 新会话能够在启动时看到数据库的正确状态 但随
  • 动态更改源后加载音频元素

    我的页面正文中出现了几个音频元素 他们看起来像这样
  • python中有内置的恒等函数吗?

    我想指出一个不执行任何操作的函数 def identity args return args 我的用例是这样的 try gettext find gettext gettext else identity 当然 我可以使用identity上
  • java.lang.ClassNotFoundException: org.joda.time.ReadablePartial

    我使用 Eclipse Luna 和 Jaspersoft Studio 插件 6 2 2 来生成 Web 应用程序的开发人员报告 从 Eclipse 插件运行一份基本的空白报告没有问题 但是当我从 java 类加载此 jrxml 时 我收
  • 如何使用 ajax POST 到 php

    我似乎不知道如何使用ajax 来发帖 我做了一个愚蠢的表格来尝试一下 即使将其一直削减到只有两个值 仍然无法让任何东西发挥作用 我的html是这样的
  • MS Graph API C# 将用户添加到组

    我一直在研究如何使用 Microsoft Graph API nuget 上提供的 dotnet C 库 从 Azure AD 组中添加 以及稍后删除 用户 Nuget MS Graph API 忽略与连接相关的所有其他内容GraphSer
  • 使用servicestack捕获异常

    我们使用 ServiceStack 来提供基于 REST 的服务已经有一段时间了 到目前为止 它的表现令人惊叹 我们所有的服务都写成 public class MyRestService RestService
  • 如何让任务计划程序从 powershell 脚本检测失败的错误代码

    我有一些 powershell 脚本 当它们内部出现故障时 我试图在 Windows 任务计划程序中将它们触发为失败状态 所以我在 powershell 脚本中做了类似的事情 我尝试了退出代码 1 或 99 但看起来 Windows 任务计
  • Python请求库如何使用单个令牌传递授权标头

    我有一个请求 URI 和一个令牌 如果我使用 curl s
  • 如何在C#中触发与最大化相关的事件

    考虑以下代码 Window myWindow new MyWindowSubclass myWindow BringIntoView myWindow Show Code which is effective as pressing the
  • 具有主键和唯一键的表意外锁定

    对于同时具有主键和单独的唯一索引的表上的事务 我遇到了 innodb 锁定问题 看起来如果 TX 使用唯一键删除一条记录 然后重新插入相同的记录 这将导致下一个键锁定而不是预期的记录锁定 因为键是唯一的 请参阅下面的测试用例以及我希望拥有哪
  • 为什么局部静态对象的初始化使用隐藏的保护标志?

    C 中的局部静态对象在第一次需要时初始化一次 如果初始化有副作用 则这是相关的 void once static bool b std cout lt lt hello lt lt std endl return true once第一次调
  • 是否有一个类可以从 .NET 中的 XSD 架构生成示例 XML 文档

    在 Visual Studio 中 您可以从现有架构创建模板 XML 文档 新的XML 模式浏览 器VS2008 SP1 更进一步 可以创建包含数据的示例 XML 文档 NET 中是否有一个类库可以自动执行此操作 而无需使用 Visual
  • Apple Music 与 MPNowPlayingInfoCenter 冲突

    当我的音乐播放器应用程序在后台播放时 我需要一些帮助来解决问题 我可以使用这两种服务在应用程序和后台播放音乐 我还可以设置MPNowPlayingInfoCenter它显示正确的信息 但播放 暂停 下一首曲目和上一首曲目只有在用户通过 Sp
  • 在 Python 中对数字进行四舍五入但保留末尾的零

    我一直在编写一个脚本 该脚本从 Excel 电子表格中获取数据 对数字进行四舍五入 并删除小数点 例如 2606 89579999999 变为 26069 但是 我需要将数字四舍五入到小数点后两位 即使会有尾随零 因此 2606 89579