观察上面的图片,剩余的贷款金额以非常独特的方式显示。它基本上是一个浮点值。当它没有浮动精度时,当小数部分有4位数时,它显示为$3000
,显示2个浮点数。但是当小数部分只有3位数时,3位精度用于浮点数。这是否可以仅使用格式说明符显示?我尝试了%X.Yf
的许多组合,但没有任何效果。有什么想法吗?
答案 0 :(得分:2)
虽然我同意使用浮点货币不是最好的解决方案,但为了获得所需的精度(在点之后总是两位数),您可以使用"%.02f"
。
示例:
#include <stdio.h>
int main()
{
printf(".0123456789 = %.02f\n", .0123456789);
printf("0.123456789 = %.02f\n", 0.123456789);
printf("01.23456789 = %.02f\n", 01.23456789);
printf("012.3456789 = %.02f\n", 012.3456789);
printf("0123.456789 = %.02f\n", 0123.456789);
printf("01234.56789 = %.02f\n", 01234.56789);
printf("012345.6789 = %.02f\n", 012345.6789);
printf("0123456.789 = %.02f\n", 0123456.789);
printf("01234567.89 = %.02f\n", 01234567.89);
printf("012345678.9 = %.02f\n", 012345678.9);
printf("0123456789. = %.02f\n", 0123456789.);
return 0;
}
这个输出是:
.0123456789 = 0.01 0.123456789 = 0.12 01.23456789 = 1.23 012.3456789 = 12.35 0123.456789 = 123.46 01234.56789 = 1234.57 012345.6789 = 12345.68 0123456.789 = 123456.79 01234567.89 = 1234567.89 012345678.9 = 12345678.90 0123456789. = 123456789.00
编辑:要获得可调整的精度,您可以使用"%*f"
:
printf("123.456789 = %.*f\n", 3, 123.456789);
以上行将打印
123.457