floating-accuracy相关内容

为什么0.1 + 0.4 = 0.5?

我们知道浮点数已损坏,因为十进制数不能总是用二进制完美表示.它们四舍五入为可以用二进制表示的数字.有时这个数字更高,有时更低.在这种情况下,请使用无处不在的 IEEE 754双重格式 0.1和0.4高一圈: 0.1 = 0.1000000000000000055511151231257827021181583404541015625 0.4 = 0.400000000000000022204 ..

NumberFormat Parse问题

我对将字符串解析为Double时遇到的这个特殊'错误'感到很困惑。 我已经设置了 NumberFormat 属性和符号。 传递15位和2位小数的字符串时(例如 str = “333333333333333,33”) 并使用解析数字num = NumberFormat.parse(str)结果省略了数字。 num的实际值是 3.333333333333333E14 。 它似 ..
发布时间:2019-01-08 13:00:25 Java开发

舍入错误?

在我的课程中,我被告知: 连续值大约在内存中表示,因此使用浮点数计算涉及舍入错误。这些是位模式的微小差异;因此,如果 e 和 f e == f 是不安全的c>是花车。 参考Java。 这是真的吗?我已经使用了与 double 和 float s的比较语句,并且从未遇到过舍入问题。我从未在教科书中读过类似的东西。当然虚拟机会解释这个吗? 解决方案 这是真的。 浮点值在 ..
发布时间:2018-11-27 11:49:08 Java开发

使用==比较Java中的浮点数有什么问题?

根据此java.sun页面 == 是Java中浮点数的等式比较运算符。 但是,当我输入此代码时: if(sectionID == currentSectionID) 进入我的编辑器并运行静态分析,我得到:“JAVA0078浮点值与==相比” 有什么问题使用 == 来比较浮点值?这样做的正确方法是什么? 解决方案 测试浮点数的“正确性”的正确方法是 ..
发布时间:2018-11-26 12:14:23 Java开发

OCaml中的整数取幂

OCaml中是否存在整数取幂的函数? **仅适用于花车。虽然看起来大部分都是准确的,但是不存在精确错误的可能性,例如2. ** 3. = 8.有时会返回错误?是否有用于整数求幂的库函数?我可以写自己的,但效率问题就出现了,如果没有这样的功能我也会感到惊讶。 解决方案 关于问题的浮点部分:OCaml调用底层系统的 pow()函数。浮点取幂是一项难以实现的功能,但它只需要忠实(即,准确到一个最 ..
发布时间:2018-08-06 20:28:31 其他开发

std :: hash是否保证等于“相等”的哈希值?浮点数字?

是浮点特化的 std :: hash (比如,对于 double s或 float s)关于 几乎平等 ?也就是说,如果两个值(例如(1./std::sqrt(5。)/ std :: sqrt(5。))和 .2 )应该比较相等,但不会对 == 运算符这样做, std :: hash behave? 那么,我可以依靠 double 作为 std :: unordered_map 键可按预期工作 ..
发布时间:2018-06-01 18:59:37 C/C++开发

与其他语言相比,Fortran是否对数值精度有固有限制?

在进行简单的编程练习时,我创建了一个while循环(Fortran中的DO循环),当真实变量达到精确值时,它将退出。 我发现令人失望的是我必须设置这个阈值,即使对于双精度的变量,我的循环能够正确退出的程度也很低。此外,当我在Perl中重写了这个循环的“蒸馏”版本时,我没有数值准确性的问题,并且循环退出正常。 由于生成问题是如此之小,在Perl和Fortran中,我希望在这里重现它,以防 ..
发布时间:2018-03-16 17:10:48 其他开发

为什么'0.3 * 3'的结果在scala语言中是0.89999999999999?

为什么在Scala中乘0.3和3的结果是0.89999999999999?解决方案 浮点计算是相当复杂的主题。 / p> 这与浮点数的二进制表示有关,并不能保证每个可能的数字(显然)都有一个确切的表示,这可能导致错误在操作,是的,这些错误可以传播。 这是一个主题的链接,虽然它不是最简单的事情,它可以让你一个好的视角,如果你想了解这个问题。 http://docs.oracle. ..
发布时间:2017-12-21 22:32:55 其他开发

奇怪的算术与swi-prolog

我发现结果很奇怪。为什么不是0.3?有人可以告诉我为什么这个结果?有没有可能解决这个问题。 ? - X是5.3-5。 X = 0.2999999999999998。 $ b $ - 我的第二个问题是如何从'hour 'notation '13 .45'---->'15.30'换成小时数?例如,上面计算的15.30-13.45的时间将是1.85。但是我需要在一小 ..
发布时间:2017-12-21 22:31:21 其他开发

Float24(24位浮点)到十六进制?

我使用浮点24位来存储一个浮点数值在恩智浦编译器MRK III中。它将24位浮点值存储为数据存储器中的3字节十六进制数。 现在,当我使用IEEE 754浮点转换从二进制检索数字回到真实时,我得到了一些非常奇怪的东西。 让我用这样一个例子来说吧 - 注意 - “由于我的编译器支持浮点数24位(和浮点数32一样),所以我赋值的意思就像这样。 示例程序: float24 f2 ..

为什么`0.4 / 2`等于`0.2`,同时`0.6 / 3`等于`python中的0.19999999999999998`?

我知道这些是浮点除法。但为什么这两个公式的表现不一样呢?我还做了一些调查,结果让我更加困惑: >>> 0.9 / 3 0.3 >>> 1.2 / 3 0.39999999999999997 >>> 1.5 / 3 0.5 这里的逻辑决定是否打印结果是否有一位小数或更多? PS:我用python3.4来做上面的实验。 b $ b 解决方案 ..
发布时间:2017-12-21 22:28:28 Python

如何在mysql中存储一个十进制的calcaulation结果,并将其返回到内存中

MySQL文档说: / p> DECIMAL和NUMERIC类型存储精确的数字数据值。使用这些类型时,重要的是要保持精确的精度,例如货币数据。 我在该列上做了这个测试 decimal_column DECIMAL(31,30) 。 $ p $ insert into tests(decimal_column)values(1/3); 然后检查已经存储的内容给出这个 ..
发布时间:2017-12-21 22:26:54 数据库

为什么某些浮点计算会改变他们的做法? (例如123456789f + 1 = 123456792)

我试图更好地理解浮点运算,出现和产生的参与错误,以及为什么结果是他们所做的。这里有3个例子,特别是我目前正在处理: $ b $ p 0.1 + 0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 +0.1 -1.0 = -1.1102230246251565E-16 加上 0.1 10 给我一个小于1.0 的数字。但是, 0.1 被表示为(双倍),比 0.1 大一些。此 ..
发布时间:2017-12-21 22:25:57 其他开发

定点到浮点和向后

正在转换固定铂。 (固定n比特为分数)到IEEE双重安全吗? ie:确实IEEE双格式可以表示一个固定点可以表示的所有数字吗? 测试:一个数字转为浮动pt格式,然后返回到原来的固定pt格式。 p>假设你的定点数是以32位整数存储的,那么IEEE双精度可以表示任何以固定点表示的值。这是因为double有一个53位的尾数,你的定点值只有32位的精度,而定点值的浮点指数在-32到32之间(取 ..