观察上图,剩余贷款金额以一种非常独特的方式显示。它基本上是一个浮点值。当它没有浮点精度时,它显示为$3000
当小数部分有 4 位时显示 2 个浮点。但是当小数部分只有 3 位时,3 位精度用于浮点。这是否可以仅使用格式说明符来显示?我尝试了很多组合,%X.Yf
但没有任何效果。有任何想法吗?
问问题
2978 次
1 回答
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
于 2012-07-20T06:02:21.753 回答