Tag: 双精度

表示中的浮点错误?

当我做这个乘法 0.94 * 8700 输出是 8177.999999999999 但应该是 8178 我使用java,但我不认为这个错误是与一个特定的编程语言现在我的问题是…为什么发生这种情况? 和其他数字(只是一个例子)导致相同的错误?

如何正确和标准地比较花车?

每当我开始一个新的项目,当我需要比较一些浮点或双variables,我写这样的代码: if (fabs(prev.min[i] – cur->min[i]) < 0.000001 && fabs(prev.max[i] – cur->max[i]) < 0.000001) { continue; } 然后我想摆脱这些魔术variables0.000001(和0.00000000001为双)和晶圆厂,所以我写了一个内联函数和一些定义: #define FLOAT_TOL 0.000001 所以我想知道有没有这样做的标准方法? 可能是一些标准的头文件? 有浮动和双重限制(最小值和最大值)

我应该使用双或浮动?

在C ++中使用一个而不是另一个的优点和缺点是什么?

浮点数与浮点数相比,奇怪的输出

float f = 0.7; if( f == 0.7 ) printf("equal"); else printf("not equal"); 为什么输出not equal ? 为什么会发生?

浮动和双重之间的区别

我知道,我已经读过双精度和单精度之间的区别,但是他们应该给大多数情况下相同的结果吗? 我在编程竞赛中解决了一个问题,并且计算的浮点数并不是很大,所以我决定使用float而不是double,并且检查了它 – 我得到了正确的结果。 但是,当我发送解决方案时,它说只有十个测试中的一个是正确的。 我一遍又一遍地检查,直到我发现使用double的float不一样。 我把计算结果加倍,输出结果加倍,程序给出了相同的结果,但这次它正确地通过了所有10个测试。 我再说一遍,输出结果是相同的,结果是相同的,但是放置浮动不起作用 – 只有两倍。 这个数值并没有那么大,在同样的测试中,程序在浮点数和双精度数上都得到了相同的结果,但在线判断只接受了双精度解。 为什么? 有什么不同?