float64 到 float32 的转换给出了意外的结果

2024-03-24

当我转换一个float64数到一个float32我得到一个奇怪的结果:

In [22]: np.float32(20140131.0)
Out[22]: 20140132.0

为什么会发生这种情况?


20140131.0 无法表示为 32 位整数。

32位浮点数 http://en.wikipedia.org/wiki/Single_precision

64 位浮点数 http://en.wikipedia.org/wiki/Double_precision

对于浮点数,在每个范围内,数字是均匀分布的。

所以它是 (1+M) * 2^(E)

所以 20140131.0 的范围是 2^24 到 2^25。该范围内有 16,777,216 个数字,但只有 8,388,608 个可表示的浮点数。所以只能表示偶数。

由于在 32 位浮点数中,尾数只有 23 位,因此整数最多只能表示 2^24。在此之上,epsilon > 1. Where epsilon是两个相邻浮点数之间的差。

至于Python浮点数,我相信它们的工作原理是这样的:

Python 中的浮点数通常不是 32 位或 64 位,因此这不是问题。长度自动调整。购买时,您将它们转换为特定类型,因此您会看到缺乏分辨率。对于 64 位整数,尾数有 52 位,因此直到超过 2^53 时才会看到此问题。

另外,数字四舍五入到最接近浮点数的方式通常是以系统范围的方式定义的(我认为),但Python的转换可能会推翻这一点,我并不完全熟悉它。

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

float64 到 float32 的转换给出了意外的结果 的相关文章

  • 二进制数据的Python字符串表示

    我试图理解 Python 显示表示二进制数据的字符串的方式 这是一个使用的示例乌兰多姆操作系统 http docs python org library os html os urandom In 1 random bytes os ura
  • 使用记事本打开文本文件作为python中的帮助文件?

    我想为我的简单程序的用户提供打开帮助文件的机会 以指导他们如何充分利用我的程序 理想情况下 我希望在 GUI 上有一个蓝色的小帮助链接 可以随时单击该链接 从而在本机文本编辑器 例如记事本 中打开 txt 文件 有没有一种简单的方法可以做到
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • VS Code Pylint 在缺失的函数/类文档字符串上用蓝色下划线突出显示整个函数

    这种情况突然开始发生 当出现缺少函数文档字符串警告时 python pylint 会用蓝色波浪线突出显示整个函数 我怎样才能让它只突出显示函数定义或在定义行上制作一个小指示器 在开发时突出显示整个文件是非常烦人的 这是缺少类文档字符串的示例
  • 从内存中发送图像

    我正在尝试为 Discord 机器人实现一个系统 该系统可以动态修改图像并将其发送给机器人用户 为此 我决定使用 Pillow PIL 库 因为它对于我的目的来说似乎简单明了 这是我的工作代码的示例 它加载一个示例图像 作为测试修改 在其上
  • 从另一个文件覆盖函数中的变量

    一 总结 我不知道如何从另一个文件覆盖函数中的变量 2 示例 2 1 配置 I use logbook http logbook pocoo org and pyfancy https github com ilovecode1 Pyfan
  • 使用正则表达式检查整个字符串

    我正在尝试检查字符串是否是数字 因此正则表达式 d 似乎不错 然而 由于某种原因 该正则表达式也适合 78 46 92 168 8000 这是我不想要的 一些代码 class Foo rex re compile d def bar sel
  • python matplotlib 使用按钮事件添加和删除图形中的文本

    我试图在调用button press event 时将文本添加到鼠标指针位置的图形中 并在调用button release event 时将其删除 我已成功添加文本 但无法将其删除 这是我使用的代码的一部分 def onclick even
  • 创建 df 以生成给定格式的 json

    我正在尝试生成一个 df 来生成下面的 json Json数据 name flare children name K1 children name Exact size 4 name synonyms size 14 name K2 chi
  • 将 Selenium 与 PyCharm CE 结合使用

    我正在尝试将 Selenium 与 PyCharm CE 一起使用 我已经使用 pip install Selenium 安装了 Selenium 并且可以通过终端使用它 但是当我尝试将它与 PyCharm 一起使用时 出现导入错误 Imp
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • Python 上每个系数具有特定约束的多元线性回归

    我目前正在数据集上运行多元线性回归 起初 我没有意识到我需要限制自己的体重 事实上 我需要有特定的正权重和负权重 更准确地说 我正在做一个评分系统 这就是为什么我的一些变量应该对音符产生积极或消极的影响 然而 当运行我的模型时 结果不符合我
  • 如何更改Python使用的SQLite版本?

    我在 Debian 9 12 上安装了 Python 3 8 和 SQLite 3 16 2 并且需要升级到较新版本的 SQLite 我已经下载并编译了 SQLite 网站上提供的合并 并将其放入 usr bin 所以当我这样做时 sqli
  • 当我移动我的 pygame 角色时,它会留下痕迹[重复]

    这个问题在这里已经有答案了 我一直在尝试用 Python 制作一个游戏 但是当我移动我的角色时 它会留下痕迹 我知道它并没有显示出那么多 但如果你靠近的话 你可以看到这条踪迹 这真的让我很困扰 这是我的代码 import pygame im
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • Google App Engine self.redirect() POST 方法

    在 GAE Python 中 使用 webApp 框架 调用 self redirect some url 通过 GET 方法将用户重定向到该 URL 是否也可以通过带有一些参数的 POST 方法进行 重定向 如果可以的话 怎样做 Than
  • 了解字典的深度

    假设我们有这个字典 d a 1 b c 了解嵌套的最直接方法是什么depth of it 您需要创建一个递归函数 gt gt gt def depth d if isinstance d dict return 1 max map dept
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • Spark (Python) 中的 Kolmogorov Smirnov 测试不起作用?

    我正在 Python Spark ml 中进行正态性测试 看到了我的结果think是一个错误 这是设置 我有一个标准化的数据集 范围 1 到 1 当我做直方图时 我可以清楚地看到数据不正常 gt gt gt prices norm hist
  • 将非方邻接矩阵导入 Networkx python

    我在下面有一些 pandas 数据框形式的数据 其中列代表离散技能 行代表离散工作 仅当工作需要该技能时才存在 1 否则为 0 skill 1 skill 2 job 1 1 0 job 2 0 0 job 3 1 1 我想使用 netwo

随机推荐

  • prop 类型在 React 应用程序中不起作用

    我正在尝试在我的react redux应用程序中使用proptypes 但它不起作用 或者我做错了什么 这是代码示例的结尾 LoginPage propTypes login form PropTypes string function m
  • Android 延迟通知

    我正在尝试使用 Android 的通知管理器创建通知 但是 诀窍是我希望通知在未来 30 天后显示 在我的代码中我正在这样做 Intent notificationIntent new Intent this MyClass class P
  • 使用winsock2和IOCP替换Delphi TClientSocket?

    有这样的事吗 它需要是异步的 没有 Indy 尝试 HPScktSrvr http www terry net pages php id 220 939383 http www torry net pages php id 220 9393
  • 哪个 Javascript 函数库:Underscore 或 wu.js 或Functional 或...? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何获取模型属性的 id 以与 MVC3 中的自定义 IClientValidatable 一起使用

    我正在尝试编写一个自定义验证属性 该属性将有条件地需要基于模型布尔属性的字段 我的属性实现了 IClientValidatable 我有要检查的属性名称 但我不知道如何获取目标属性的客户端 ID public IEnumerable
  • Automapper - 字典到对象映射不起作用?

    我正在尝试将字典转换为对象 我已经尝试过以下方法 但它不起作用 public class FormField public string FieldName get set public string FieldValue get set
  • 服务器端表使用 JS、Php 或 Ajax 从表(但不是数据库)中删除行

    项目链接 https databasetable net 000webhostapp com https databasetable net 000webhostapp com 以下代码正确删除表中的一行 example on click
  • LoadInst 和 StoreInst 值和地址 LLVM

    我有一个文件 print c 它有两个功能 void printLoad print address and value of memory location from which value printf address value vo
  • Java - SpringMVC - 获取控制器中的参数

    我在将对象保存到数据库中时遇到问题 我有一个与配置文件具有多对一关系的用户 我的 JSP 刚刚添加了一个新用户 因此 JSP 包含字段和具有所需配置文件的组合框 问题是 当我运行程序时 即使我在组合框中选择了一个配置文件 属性 user p
  • Flutter:google_sign_in 插件 MissingPluginException

    我试图让谷歌登录插件正常工作 但没有成功 我已将其放入我的 pubspec yaml 并运行 flutter packages get 但仍然没有运气 抛出以下异常 E flutter 3313 ERROR lib tonic loggin
  • “有一个”和“是一个”是什么意思? [复制]

    这个问题在这里已经有答案了 谁能解释一下两个类之间的 HAS A 和 IS A 是什么意思 举个例子会有帮助 汽车是 车辆 汽车有一个方向盘 Eg class SteeringWheel class Vehicle virtual void
  • 集合中项目的总和

    使用 LINQ to SQL 我有一个包含 OrderDetails 集合的 Order 类 订单详细信息有一个名为 LineTotal 的属性 它获取 Qnty x ItemPrice 我知道如何对数据库进行新的 LINQ 查询来查找订单
  • iOS 内部分发由外部供应商开发的应用程序

    第三方开发了一款供我们企业环境中私人使用的应用程序 现在是时候分发它了 但他们不想向我们发送他们的代码 我感觉这会导致问题 因为分发配置文件和证书必须发送给他们 从而损害我们的私钥 这是我们不允许的 这是正确的吗 或者可以在不泄露我们的私钥
  • 如何从 PowerShell 模块导出变量

    我在a中定义了一个变量psm1文件 但是当我尝试在另一个脚本中访问它时 导入模块后 我没有看到在psm1 file 全局变量 psm1 blah hello world 我的脚本 ps1 Import Module PSScriptRoot
  • Phaser3 场景过渡

    我是新来的Phaser3在开始一个疯狂的项目之前 我想知道我应该如何开始 在场景之间切换 我看到有几个函数 启动 启动 切换 运行 恢复 暂停等 例如 假设我想要 2 个场景 一个菜单和一个游戏 我在菜单上启动 我想进入游戏场景 如果我单击
  • MongoDB 中“id”和“_id”字段的区别

    使用 MongoDB 文档中的字段 ID 或 ID 有什么区别吗 我问这个 因为我通常使用 id 但是我在文档中看到了这种排序 id 1 http www mongodb org display DOCS Optimizing Object
  • 高效的按位运算,用于计数位或查找最右|最左的位

    给定一个 unsigned int 我必须执行以下操作 计算设置为 1 的位数 找到最左边1位的索引 找到最右边1位的索引 操作不应依赖于体系结构 我已经使用按位移位完成了此操作 但我必须迭代几乎所有位 es 32 例如 计算 1 unsi
  • 窗口背景图像的模糊效果

    我有一个以图像为背景的窗口 在那个窗口上我还有按钮和其他控件 这是我对该窗口的风格
  • Angular:使用指令禁用材质按钮不起作用

    我想通过指令禁用一些按钮 向按钮添加禁用属性 该指令适用于经典 html 按钮 但不适用于角形材质设计按钮 mat button https material angular io components button overview im
  • float64 到 float32 的转换给出了意外的结果

    当我转换一个float64数到一个float32我得到一个奇怪的结果 In 22 np float32 20140131 0 Out 22 20140132 0 为什么会发生这种情况 20140131 0 无法表示为 32 位整数 32位浮