【发布时间】:2012-05-30 04:25:54
【问题描述】:
当我想处理大小数字时,我必须如何在 C 中求和/比较值?
#include <stdio.h>
#include <math.h>
int main(void) {
if (1.0 + (1/pow (10,50)) == 1.0)
printf("true");
else
printf("false");
return 0;
}
如何让它返回false?
【问题讨论】:
-
如果您的 10^50 是 '10 的 50 次方',那么这是不正确的,^ 是按位或。
-
@RaulP.R.O 这个问题指向大浮点数的概念,而不是大整数。任意精度的小数比任意长度的整数更适合这个问题。
-
@RaulP.R.O 谢谢,已更正
-
@Sholy 你还需要在 pow 之前有 1.0 我认为......但正如已经回答的那样,这并不重要,因为 c 浮点数/双精度数不够精确
-
@RoneRackal 不;将 int 和浮点数相除得到浮点结果。
标签: c floating-point numerical digits