29得票3回答
获取下一个最小的双精度浮点数。

在单元测试中,我需要测试一些边界条件。一个方法接受一个 System.Double 参数。 有没有办法获取 比当前值略小 的双精度浮点数?(即将尾数减少1个单位值)? 我考虑使用 Double.Epsilon,但是这种方法不可靠,因为它只是从零开始的最小增量,所以对于更大的值(即 9999...

28得票1回答
为什么在ColdFusion中0.06 + 0.01 = 0.07?

为什么ColdFusion中的数学运算似乎不受浮点数运算问题的影响?看看下面的代码:result = 0.06 + 0.01; writedump(result); writedump(result.getClass().getName()); 输出为: 0.07 jav...

27得票5回答
为什么使用双精度的for循环无法终止?

我正在查看旧的考试题目(目前是大学一年级),我想知道为什么以下的for循环没有在预期结束时结束。为什么会发生这种情况?我知道它因为舍入误差或其他原因跳过了100.0,但是为什么?for(double i = 0.0; i != 100; i = i +0.1){ System.out....

25得票3回答
将最具代表性的十进制数字精确转换为二进制并返回十进制而不失去精度的位数是6还是7.225?

我遇到了两个不同的浮点数精度公式。 ⌊(N-1) log10(2)⌋ = 6位小数(单精度) 和 N log10(2) ≈ 7.225位小数(单精度) 其中 N = 24 个有效位数(单精度) 第一个公式可以在由W. Kahan教授撰写的 "IEEE标准754二进制浮点算术"...

24得票3回答
如何安全地将CGFloat转换为整数(floor或ceil)?

我经常需要将一个 CGFloat 向下取整或向上取整为一个 int,用于计算数组索引。 使用 floorf(theCGFloat) 或 ceilf(theCGFloat) 常常会遇到浮点数不准确的问题。 如果我的 CGFloat 是 2.0f,但是在内部表示时它被表示为 1.9999999...

23得票4回答
如何从变量中指定浮点数小数位精度?

我有一段重复的简单代码,重复多次,我想为它制作一个函数:for i in range(10): id = "some id string looked up in dict" val = 63.4568900932840928 # some floating point nu...

23得票1回答
为什么我的 BigDecimal 对象初始化后出现了意料之外的舍入误差?

在 Ruby 2.2.0 中,为什么会出现以下代码行为:BigDecimal.new(34.13985572755337, 9) 相等 34.0 但是BigDecimal.new(34.13985572755338, 9) 相等于 34.1398557 吗? 请注意,我是在一台64位机器上运...

20得票2回答
为什么MySQL对浮点数的舍入比预期的要严格?

UPDATE some_table SET some_float_field=1919.987 WHERE id=123 SELECT * FROM some_table WHERE id=123 其中some_float_field是一个定义为"float"(没有指定大小值)的字段。 预...

18得票3回答
精度问题:为什么Matlab和Python numpy输出结果如此不同?

我了解基本数据类型,并知道浮点数类型(float,double)不能精确地存储某些数字。 在将一些代码从Matlab移植到Python(Numpy)时,我发现计算结果存在显著差异,我认为这与精度有关。 考虑以下代码,对一个500维向量进行z-score标准化,只有前两个元素具有非零值。 ...

18得票1回答
/fp:strict和/fp:precise之间的区别是什么?

在何时使用fp:strict而不是fp:precise? 如果我想要“更精确”的计算并避免舍入误差,是否最好使用前者?使用哪种的启发式方法是什么?