1

通貨 (「120.00」、「123.45」、「1234.56」) に変換する必要がある「12000」、「12345」、「123456」などの値のリストがあります。私が知っている唯一の方法は、値を文字列に変換し、最初の strlen()-2 文字を 1 つの文字列 (ドル) にコピーし、残りの 2 桁を別の文字列 (セント) にコピーしてから、次のように記述することです。

printf("%s.%s", dollars, cents);
4

3 に答える 3

6
printf("$%.2f", value/100);
于 2009-02-02T19:05:06.570 に答える
3

金額を格納または表すために float を使用しないでください。long を使用します (40 億セント以上が必要な場合は long を使用します)。通常は、使用可能な最小単位で通貨を表すことをお勧めします。たとえば、10000 を使用して 100 ユーロを表します)。次に、これらの値をフォーマットする正しい方法 (1 ユーロまたは 1 ドルを 100 セントと仮定) は次のとおりです。

printf( "%d.%02d", value/100, value%100);

それが理にかなっていることを願っています...

通貨値を使用した計算は複雑なテーマですが、最も近い通貨単位 (たとえばセント) に丸められた答えを常に目指しており、常に丸め誤差が計算されることを常に確認している (たとえば、1 ドルを除算する) ことをお勧めします。 33+33+34 または 33+33+33+1 になる 3 つの方法)。

于 2009-02-03T08:14:33.670 に答える
0

$ 1.00未満の値に0をプレフィックスとして付けるには、次を使用します。

printf( "$%0.2f"、value / 100.0);

値=25の場合、これは$0.25になります

于 2009-02-05T23:45:10.857 に答える