gpt4 book ai didi

c - 我怎样才能在C中用逗号输入货币?

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:27 24 4
gpt4 key购买 nike

我想在 C 语言中为货币设置 double 或长 double 格式。我想在开头放置一个美元符号,如果需要则放置一个负号,逗号迭代小数点前的每第三个数字,并在小数点前放置一个点.到目前为止,我一直在打印这样的数字:

printf("Please enter an amount: $%.2Lf\n", money);

返回类似的东西

Please enter an amount: $123456789.00

数字应该是这样的......

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

我需要它来处理任何数字。如果答案是实际代码会有所帮助,因为我在编码方面相对较新(大学新生),但我知道这似乎是简单的出路,所以如果有人愿意向我解释并引导我完成,我将不胜感激那个也是。这个问题是我之前在这个网站上有人问过的,但我需要一些认真的帮助。

谢谢!

最佳答案

也许这段代码会对您有所帮助。它正在为您的目的使用语言环境。

#include <stdio.h>
#include <locale.h>

int main()
{
long double money;
setlocale(LC_NUMERIC, "en_US.UTF-8"); // Use thousands separators

printf("How much? ");
scanf("%Lf", &money);
printf("Formatted: $%'.2Lf\n", money); // Notice the ' character
}

语言环境几乎就是它们听起来的样子。它们处理本地 标准,例如默认的时间格式。当您使用 setlocal 时,您发送一个 category 和一个 locale 作为参数。这些类别是:

  • LC_ALL 选择整个 C 语言环境
  • LC_COLLATE 选择 C ​​语言环境的排序规则类别
  • LC_CTYPE 选择C语言环境的字符分类类别
  • LC_MONETARY 选择 C ​​语言环境的货币格式类别
  • LC_NUMERIC 选择 C ​​语言环境的数字格式类别
  • LC_TIME 选择 C ​​语言环境的时间格式类别

有许多不同的语言环境。 en_US.UTF-8 就是其中之一。

https://en.cppreference.com/w/c/locale/LC_categories

关于c - 我怎样才能在C中用逗号输入货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com