我怎样才能在C逗号格式化货币?(How can I format currency with com

2019-06-26 14:18发布

我期待格式化长期持股量货币C.我想放置一个美元符号开头,逗号迭代小数点前每三个数字,小数点前立即点。 到目前为止,我一直像这样印刷的数字:

printf("You are owed $%.2Lf!\n", money);

返回服用点状

You are owed $123456789.00!

数字应该是这样的

$123,456,789.00
$1,234.56
$123.45

任何答案不一定是实际的代码。 您不必到勺子喂。 如果有C-相关细节这会有所帮助,请提及。 否则,伪码是好的。

谢谢。

Answer 1:

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),我只是想你希望它两个方式。



Answer 2:

我不认为有一个C函数要做到这一点,但你可以只写自己的? 假设float price = 23234.45 。 首先打印(int)price用逗号,打印小数点; 然后为小数部分,做printf("%d", (int)(price*100)%100);



文章来源: How can I format currency with commas in C?
标签: c formatting