floating-accuracy

    1热度

    2回答

    虽然学习浮点算术的精度和避免它的不同方法(使用共轭,泰勒级数......)书籍经常提到减去两个非常相似的数字或者一个大的和一个小的数字作为错误的最大原因。为什么只有减法导致这个而不是加法?正如我所看到的那样,在转移时你仍然会失去许多重要的位。

    6热度

    9回答

    ) 我写了一个程序来计算一个数字的第n个根,最多可以保留2位小数。例如81的第4个根是3. 125的第3个根是5.它除了4的第2个根以外都很好地工作。它给出输出1.99而不是2.这里是代码。 #include<stdio.h> int main(int argc, char **argv) { double root1(int,int); int n; int n

    2热度

    3回答

    我在做一些单元测试工作,并为其中一个断言弹出一个特殊的错误。请注意expectedValue和actualValue都是双打。 Assert.AreEqual(expectedValue, actualValue); 异常表示,他们不相等,阐述的是 “预期值:< 6.8>实际值:< 6.8>”。 预期值是硬编码6.8和实际值是使用数据库值通过我们的分类方法(如相等的记录,或詹克斯自然中断的)去

    0热度

    2回答

    我看到,下面的代码产生的结果如下,任何想法为什么是这样的输出? #include <stdio.h> #include <math.h> int main() { int i = 0; for(i = 0; i < 10; i++) { printf("%d\t\t\t%d\t\t\t", i, (int)pow(10, i)); printf(

    3热度

    7回答

    $a = ((0.1 + 0.7) * 10) == (int)((0.1 + 0.7) * 10); PHP返回false。 有人可以解释我,为什么会发生? 首先返回图8,第二7.

    5热度

    3回答

    可能重复: Which is the first integer that an IEEE 754 float is incapable of representing exactly? 首先,这是一个家庭作业的问题,只是为了清除该立即开始。我当然不是在寻找一个勺子喂食的解决方案,只是一个指向正确方向的小指针。 所以,我的任务是找到不能表示为IEEE-754浮点(32位)的最小正整数。我知道,测试

    3热度

    3回答

    System.out.println(2.14656); 2.14656 System.out.println(2.14656%2); 0.14656000000000002 跆拳道?

    6热度

    5回答

    我想将最接近的数字设置为1.0以下的浮点数。通过阅读维基百科关于IEEE-745的文章,我设法发现1.0的二进制表示为3FF0000000000000,所以最接近的double值实际上是0x3FEFFFFFFFFFFFFF。 我知道的初始化双重这个二进制数据的唯一方法是这样的: double a; *((unsigned*)(&a) + 1) = 0x3FEFFFFF; *((unsigned

    2热度

    2回答

    我正在写一个模型检查器,依靠其被这些算法集中使用的系数的计算是如下: [替代文本] [1] 其中q是双倍,t也是双倍,k是整数。 e代表指数函数。这个系数被用于在步骤,其中q和t不改变而k总是从0开始,直到所有先前系数的总和(即步骤)达到1 我的第一个实施是一个文字一个: let rec fact k = match k with 0 | 1 -> 1 | n ->

    1热度

    3回答

    我想打印出一个浮点数,具有价值5 ,当它打印出来我得到的是5.0,所以我的问题是: 如何让它如此,如果该值只是5,它会打印5后面没有.0,如果它是5.2左右,它会打印出来呢? 我环顾四周,但我发现的一切都是要么强迫这种或那种方式。 有人可以帮助我在正确的方向吗?谢谢:)