1

必要なフォーマット

上の画像を見てください。残りのローン金額はかなりユニークな方法で表示されています。基本的には浮動小数点値です。浮動小数点精度がない$3000場合は、小数部が4桁の場合のように表示され、2つの浮動小数点が表示されます。ただし、小数部が3桁しかない場合は、浮動小数点に3桁の精度が使用されます。これはフォーマット指定子のみを使用して表示することは可能ですか?私は多くの組み合わせを試し%X.Yfましたが、何も機能しませんでした。何か案は?

4

1 に答える 1

2

通貨に浮動小数点を使用するのは最善の解決策ではないことに同意しますが、必要な精度(常にポイントの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 に答える