浮点结果

时间:2011-08-25 16:21:07

标签: c floating-point

在我的C代码中:

我看到浮点中的一些结果出现了例如2.404567E+1。在我看来,对于小于1的结果,结果会变成一些指数级数。

所以,我有两个问题:

  1. 如何将结果舍入为某些数字,而不是5.23542342734我只希望结果为5.23

  2. 如何摆脱指数结果并获得结果,例如0.1648而不是1.6483517E-1

2 个答案:

答案 0 :(得分:8)

您可以通过多种方式控制printf()的输出格式(我假设您正在谈论printf()?)。 e.g:

printf("%.2f\n", 5.23542342734);  // Prints "5.23"
printf("%.4f\n", 1.6483517E-1);   // Prints "0.1648"

参见例如有关printf()的格式说明符的详细信息,请http://www.cplusplus.com/reference/clibrary/cstdio/printf/(或互联网上的其他一百万条引用)。

答案 1 :(得分:3)

调整格式字符串:

 printf ("%.2f", float_data);

http://linux.die.net/man/3/printf

或者用来截断/近似某些小数位的值,我认为以下内容应该有效:

trunc = floor (float_val * 10000) / 10000;

以上内容仅保留float_var的最多4位小数,并将其存储到trunc。如果需要,请使用round ()