在我的C代码中:
我看到浮点中的一些结果出现了例如2.404567E+1
。在我看来,对于小于1的结果,结果会变成一些指数级数。
所以,我有两个问题:
如何将结果舍入为某些数字,而不是5.23542342734
我只希望结果为5.23
如何摆脱指数结果并获得结果,例如0.1648
而不是1.6483517E-1
答案 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 ()
。