在C中格式化非常大的数字

时间:2010-09-27 10:17:29

标签: c formatting

我必须使用以下代码输出一个大数字,一个双精度数字:

fprintf(outFile,"           %11.0f   %d O(g(n))",factorialNotRecursive(index,factCount),factValue);

现在这个数字变得如此之大,以至于它进一步向下跳跃 输出清单。一旦超过11位数,最大值就会继续 变大。有办法解决这个问题吗?我不确定投入有多大 将在该计划上运行。

1 个答案:

答案 0 :(得分:1)

我认为你不能直接这样做。您必须打印到字符串,然后更改字符串。

/* pseudo (untested) code */

value = factorialNotRecursive(index, factCount);
/* make sure buff is large enough (or use snprintf if available) */
n = sprintf(buff, "%11.0f", value);
if (n > 11) {
    buff[10] = '+';
    buff[11] = 0;
}
fprintf(outFile,"           %s   %d O(g(n))", buff, factValue);