我想打印一个浮点值,它在逗号后面有2位整数和6位小数.如果我只是使用printf("%f", myFloat)我得到一个截断值.
我不知道这是否总是发生在C中,或者只是因为我将C用于微控制器(确切地说是CCS),但是在引用时它告诉我%f只是:得到一个截断的浮点数.
如果我的浮动是44.556677,我打印出来"44.55",只有前两位小数.
所以问题是......我怎样才能打印我的6位数字(以及其中的6位数字,以防万一之后我或者之后有零)?
Beg*_*ner 116
你可以这样做:
printf("%.6f", myFloat);
Run Code Online (Sandbox Code Playgroud)
6表示点后的位数.
PS谢谢@caf纠正我.
das*_*ght 17
printf("%9.6f", myFloat) 指定总共9个字符的格式:点前2位,点本身和点后6位.
printf("%0k.yf" float_variable_name)
Run Code Online (Sandbox Code Playgroud)
这k是您要打印的字符总数。k = x + 1 + y(+ 1对于点)并且float_variable_name是要打印的浮点变量。
假设您要打印小数点前的 x 位数字和小数点后的 y 位数字。现在,如果 float_variable_name 之前的位数小于 x,那么它会自动在它前面加上那么多的零。
printf("%.<number>f", myFloat) //where <number> - digit after comma
Run Code Online (Sandbox Code Playgroud)
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
小智 5
尝试这些来澄清浮点打印中的右对齐问题
printf(" 4|%4.1lf\n", 8.9);
printf("04|%04.1lf\n", 8.9);
Run Code Online (Sandbox Code Playgroud)
输出是
4| 8.9
04|08.9
Run Code Online (Sandbox Code Playgroud)