奇怪的浮点除法结果

2023-12-13

我在一个grails项目中发生了这个奇怪的除法错误(但我认为grails与它无关,我认为是一个groovy或java问题):

如果在常规控制台中我运行这个

float money = -1.30
float r = 0.01

println ((money/r).class.name)
println ((money/r).floatValue())
println ((money/r).toString() )

我得到这个输出

java.lang.Double
-130.0
-129.99999813735482

groovy 中的浮点除法给我一个 Double,这是正确的,但是 为什么 Double toString() 给我一个如此奇怪的值“-129.99999813735482”并且 不是正确的“-130.0”?


来自浮点指南:

为什么我的数字(例如 0.1 + 0.2)加起来不等于 0.3,并且 相反,我得到了一个奇怪的结果,例如 0.30000000000000004?

因为在内部,计算机使用一种格式(二进制浮点) 根本无法准确表示 0.1、0.2 或 0.3 这样的数字。

当代码被编译或解释时,你的“0.1”已经是 四舍五入到该格式中最接近的数字,这会导致一个小的 即使在计算发生之前也会出现舍入误差。

具体来说,1.3和0.01都不能准确地用a来表示。float.

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

奇怪的浮点除法结果 的相关文章

  • 从字符串中删除多个子字符串 - Java

    我需要从给定字符串中删除多个子字符串 例子 String exclude one two three String input if we add one and two we get three 我希望我的程序从输入字符串中删除所有出现的
  • 如何通过两跳 SSH 隧道使用 JProfiler

    我正在尝试将 JProfiler 连接到在我将调用的服务器上运行的 JVMremote 该服务器只能从我的工作站访问 local 通过我将调用的另一台服务器middle 我的计划是将 JProfiler 连接到remote是这样的 安装 J
  • Spring批量写入器限制

    我正在工作 Spring Batch 项目 从数据库读取记录然后写入rabbitmq 然后发送到HTTP消息网关 网关有150TPS我需要将我的应用程序限制为 150TPS 有没有办法带弹簧批的油门或者还有其他更好的方法吗 你能行的 在 S
  • android.os.FileUriExposedException 在 Oreo 中引起(仅!)[重复]

    这个问题在这里已经有答案了 从 Google Play Console 中 我可以看到此异常仅发生在 Android 8 0 的设备上 android os FileUriExposedException at android os Str
  • LibGDX 闪烁

    我已经使用 LibGDX UI 设置来启动一个项目 我在实现 ApplicationListener 中唯一拥有的是 public void create setScreen new LoadingScreen this 这应该会触发 Lo
  • docker 中带有参数的 jar 文件

    Helo 我有一个 java jar 文件 当我从终端运行它时 它会接受一堆参数作为输入 我想制作一个 docker 映像并运行它 其中包含 jar 文件 我仍然可以在其中传递 jar 文件的参数 将 jar 文件设置为您的入口点 http
  • Logback 配置在单行上有异常吗?

    我的日志被提取 传输并合并到 elasticsearch 中 多行事件很难跟踪和诊断 有没有办法使用收集器和正则表达式将异常行分组到单个记录中登录配置 https logback qos ch manual layouts html xTh
  • 声纳要求将这一领域定为最终目标

    我的程序中有以下代码 在与 Maven 集成后 我正在运行 SonarQube 5 对其进行代码质量检查 我面临这个错误 将此 public static processStatus 字段设为最终字段 将此 public static pr
  • 在Java中读取制表符分隔的文件

    我有以下代码来读取 Java 中的制表符分隔文件 while str in readLine null if str trim length 0 continue String values str split t System out p
  • 如何在不使用反射的情况下查看对象是否是数组?

    在Java中如何在不使用反射的情况下查看对象是否是数组 如何在不使用反射的情况下迭代所有项目 我使用 Google GWT 所以不允许我使用反射 我很想在不使用反射的情况下实现以下方法 private boolean isArray fin
  • 使用嵌入式 Jetty 7 发布 JAX-WS 端点

    有人可以帮忙吗 我想使用嵌入式 Jetty 7 作为端点 这是我尝试过的 public class MiniTestJetty WebService targetNamespace http public static class Calc
  • 在仔细锁定但不受信任的代码上使用 Thread.stop()

    我知道Thread stop 已被弃用 并且有充分的理由 它通常不安全 但这并不意味着它是never安全 据我所知 在我想要使用它的上下文中它是安全的 而且 据我所知 我别无选择 上下文是一个两人策略游戏的第三方插件 以国际象棋为例 第三方
  • 检查对象是否为空

    我有一个链表 其中第一个节点包含空对象 表示firstNode data等于null firstNode nextPointer null firstNode previousPointer null 我想检查firstNode 是否为空
  • Spring Boot - 如何在开发过程中禁用@Cacheable?

    我正在寻找两件事 如何在开发过程中使用 Spring boot dev 配置文件禁用所有缓存 application properties 中似乎没有通用设置可以将其全部关闭 最简单的方法是什么 如何禁用特定方法的缓存 我尝试像这样使用 S
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • Spark java:如何处理多部分/表单数据输入?

    我在用spark http sparkjava com 开发网络应用程序 当我想上传文件时出现问题 public final class SparkTesting public static void main final String a
  • 如何管理一个 JInternalFrame 调用另一个 JInternalFrame?

    我有一个带有此代码的 JDesktopPane public class Menu extends JFrame implements ActionListener Creates new form Portada public stati
  • 如何在 VSCode 中热重载 Tomcat 服务器

    我正在从 Eclipse IDE VSCode 分别用于编码 Java servlet 和 HTML CSS JS 网页 迁移到仅使用 Visual Studio Code 因为它的轻量级 我为 VSCode 安装了几个 Java 扩展 R
  • 如何在java中进行多处理,以及预期的速度提升是多少?

    我是一个新手 使用 Java 对 csv 文件进行一些数据处理 为此 我使用 Java 的多线程功能 线程池 将 csv 文件批量导入到 Java 中 并对每一行执行一些操作 在我的四核处理器上 多线程大大加快了处理速度 我很想知道多处理如
  • 旧的和奇异的 JVM 上 java.io.BufferedInputStream 的默认缓冲区大小是多少?

    我一直在为一篇关于以下内容的博客文章进行一些研究java io BufferedInputStream和缓冲区 显然 多年来 默认值已从区区 512 字节增长到 8192 字节 冒昧地 Sun 的 Java 7 实现 甚至在JDK 1 1

随机推荐

  • 当我关闭 Pygame 时屏幕冻结

    该代码加载了一个 pygame 屏幕窗口 但是当我单击 X 关闭它时 它变得没有响应 我在 64 位系统上运行 使用 32 位 python 和 32 位 pygame from livewires import games color g
  • 不带 GROUP BY 子句的 MySQL 聚合函数

    在 MySQL 中 我观察到尽管没有 GROUP BY 子句 但在 SELECT 列表中使用 AGGREGATE FUNCTION 的语句仍会被执行 如果我们这样做 其他 RDBMS 产品 例如 SQL Server 会抛出错误 例如 SE
  • 关于 git pull 的合并/变基步骤的困惑

    来自 Loeliger 2ed 的 Version Control with Git 关于 git pull 中的合并或变基步骤 在拉取操作的第二步中 Git 执行 合并 默认 或变基操作 关于 git pull 中的合并步骤 在此示例中
  • 对出现错误的行使用带有重复标识符的扩展

    我的数据如下所示 df lt read table header T text GeneID Gene Name Species Paralogues Domains Functional Diversity 1234 DDR1 hsapi
  • 如何在android中动态启动和结束进度条

    当我从第一个活动类跳过第二个活动类时 我将开始对第二个活动中的某些图像进行图像处理 然后直到新图像出现在屏幕上时 我不想启动进度栏 然后在新图像出现在屏幕上时完成 我怎样才能做到这一点 使用 ProgreaaDialog 和 AsyncTa
  • 调用方法 Location.toString 的权限被拒绝

    我用的是YUI 有时我会看到 调用方法 Location toString 的权限被拒绝 错误 它在connection js中报告 我还没有找到任何线索为什么会出现这个错误 很奇怪 如果您通过跨域 iframe 处理任何 Flash 那么
  • 如何在 Pyspark 中注册不带参数的 UDF

    我已经尝试使用 lambda 函数带参数的 Spark UDF 并注册它 但是我怎样才能创建没有参数和注册器的 udf 我已经尝试过这个我的示例代码将期望显示当前时间 从日期时间导入日期时间 从 pyspark sql functions
  • 如何删除等号('=')之前的所有字符串文本Java

    我想解析一个字符串 以便构建一个 XML 文档 I have String value path Some Xpath Here 我是这样解析的 private void parseXpath String s path Some Xpat
  • JVM 如何确保 System.identityHashCode() 永远不会改变?

    通常默认实现Object hashCode 是内存中对象分配地址的某个函数 尽管这不是由JLS 鉴于虚拟机在内存中分流对象 为什么返回的值System identityHashCode 在对象的生命周期中永远不会改变 如果是 一次性 计算
  • 在 Rust 中处理 GTK+ 事件的替代方法

    目前 我管理 GTK 活动Rc and RefCell如下例所示 extern crate gtk use std cell RefCell use std rc Rc use gtk Button ButtonExt ContainerE
  • SAPUI5 为 TreeTable/空行创建 JSON

    我想从 JSON 请求创建 SAPUI TreeTable 目前我的输出如下所示 如您所见 每个节点都包含一个空行 gt 我不知道这是从哪里来的 我不想让这些空行行 我的表定义 Create an instance of the table
  • 有没有办法强制使用dll版本?

    有没有办法强制使用特定的 dll 版本 从应用程序配置 背景故事 我们正在使用 SQL Compact 3 5 由于业务原因 是的 我知道 暂时无法迁移到 SQL Compact 3 5 SP1 我们的构建目录中有 System Data
  • foreach 循环的角度链接承诺

    我有一组照片文件需要上传到 Azure 云存储 我使用 foreach 循环调用上传 如下所示 scope savetemplate function var imagePathsArray scope filesimage scope f
  • LinkedIn 共享显示大图像的要求

    我的问题是 为什么图像很小以及如何使其变大 我已经实现了linkedIn共享 为此 我添加了元标记 og title og image og description og url 一切正常 但我的形象很小 小图像示例 大图示例 我们已经向
  • 0.5 时向上或向下舍入

    我遇到了 Javascript 在达到 0 5 时对数字进行四舍五入的方式的问题 我正在编写征费计算器 并注意到结果有 0 1c 的差异 问题是他们的结果是21480 705我的应用程序翻译成21480 71 而关税说21480 70 这是
  • 确定-取消对话框:处理“Enter”键按下

    我正在建造一个Dialog在Winforms中 当您创建它时 它有两个 确定 和 取消 按钮 这就是我想要的 在此对话框中我还有一个TextBox and a Sub VB NET 中的编码 处理其KeyPress事件 我需要按下 Ente
  • 裸星号作为方法定义中的参数:def f(*) [重复]

    这个问题在这里已经有答案了 我知道这意味着什么 def f args end 但这是什么意思以及为什么要使用它 它也可以与命名参数一起出现吗 def f end def f 具有相同的效果def f args 只不过它没有命名通配参数数组
  • Flexdashboard 侧边栏选择器输入溢出与滚动条

    在我之前的问题中shinyWidgets pickerInput 宽度问题溢出侧边栏我能够解决侧边栏中的 pickerInput 框如果值太宽会在侧边栏中被截断的问题 但是通过使用overflow visible 为了解决这个问题 当输入框
  • 如何唯一标识 ContactsContract.Contacts 表上的联系人

    我有一个应用程序可以获取ContactsContract Contacts LOOKUP KEY设备上的联系人并将其保存在应用程序数据库中 看完之后this页面我想我可以使用LOOKUP KEY唯一标识联系人 即使在编辑联系人时 例如编辑联
  • 奇怪的浮点除法结果

    我在一个grails项目中发生了这个奇怪的除法错误 但我认为grails与它无关 我认为是一个groovy或java问题 如果在常规控制台中我运行这个 float money 1 30 float r 0 01 println money