繁体   English   中英

C: printf 一个浮点值

[英]C: printf a float value

我想打印一个浮点值,它在逗号后有 2 个整数和 6 个十进制数字。 如果我只使用printf("%f", myFloat)我会得到一个截断的值。

我不知道这是否总是发生在 C 中,或者只是因为我将 C 用于微控制器(确切地说是 CCS),但在参考中它告诉%f得到的是:一个截断的浮点数。

如果我的浮点数是44.556677 ,我将打印出"44.55" ,只有前两位十进制数字。

所以问题是......我怎样才能打印我的 6 位数字(以及其中的 6 位数字,以防万一我在那之后有零或其他什么)?

你可以这样做:

printf("%.6f", myFloat);

6 表示小数点分隔符后的位数。

printf("%9.6f", myFloat)指定了一种共有 9 个字符的格式:点前 2 位数字、点本身和点后 6 位数字。

printf("%0k.yf" float_variable_name)

这里k是要打印的字符总数。 k = x + 1 + y (点为+ 1 ),而float_variable_name是要打印的浮点变量。

假设您要打印小数点前的 x 位数字和小数点后的 y 位数字。 现在,如果 float_variable_name 之前的位数小于 x,那么它会自动在它前面加上那么多的零。

printf("%.<number>f", myFloat) //where <number> - digit after comma

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

使用%.6f 这将打印 6 位小数。

试试这些来澄清浮点打印中的右对齐问题

printf(" 4|%4.1lf\n", 8.9);
printf("04|%04.1lf\n", 8.9);

输出是

 4| 8.9
04|08.9

您需要在 printf 语句中使用%2.6f而不是%f

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM