[英]How does floating point error propagate when doing mathematical operations in C++?
[英]error in result while doing large mathematical operations in C
我使用了 long long 结果; 将 150 的结果存储到 53 次方,但它仍然在 C 中给出 -8 结果。我不知道用什么来在 C 中存储如此大的值。
150 的 53 次方整数表示正好需要 384 位。 long long
的宽度——如果它甚至被支持——可能会有所不同,但 128 位是常见的,我会惊讶地看到它长于 256 位。
您可以使用各种 bignum 库来表示该值(在这种情况下,您还需要使用该库来操作它)。 或者,您可以将其存储为double
。 double
可以表示这种数量级的数字,但它们的精度有限。 对于许多目的,它们是完全足够的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.