我期待格式化长期持股量货币C.我想放置一个美元符号开头,逗号迭代小数点前每三个数字,小数点前立即点。 到目前为止,我一直像这样印刷的数字:
printf("You are owed $%.2Lf!\n", money);
返回服用点状
You are owed $123456789.00!
数字应该是这样的
$123,456,789.00
$1,234.56
$123.45
任何答案不一定是实际的代码。 您不必到勺子喂。 如果有C-相关细节这会有所帮助,请提及。 否则,伪码是好的。
谢谢。
你printf
可能已经能够用做自身'
标志。 您可能需要设置您的区域,虽然。 下面是我的机器的例子:
#include <stdio.h>
#include <locale.h>
int main(void)
{
setlocale(LC_NUMERIC, "");
printf("$%'.2Lf\n", 123456789.00L);
printf("$%'.2Lf\n", 1234.56L);
printf("$%'.2Lf\n", 123.45L);
return 0;
}
并运行它:
> make example
clang -Wall -Wextra -Werror example.c -o example
> ./example
$123,456,789.00
$1,234.56
$123.45
此程序可以在我的Mac(10.6.8)和Linux机器上(Ubuntu的10.10),我只是想你希望它两个方式。
我不认为有一个C函数要做到这一点,但你可以只写自己的? 假设float price = 23234.45
。 首先打印(int)price
用逗号,打印小数点; 然后为小数部分,做printf("%d", (int)(price*100)%100);