[英]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
使用%.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.