How do I format cents and dollars in C#? How do I convert one to the other?
如果我用C或Java编写了25美分的东西,我怎么把它转换成25美元?
您可能应该使用Decimal数据类型,然后不要试图将美分转换为美元,而是使用一个标准符号:
1 2
| Decimal amount = .25M;
String.Format("Amount: {0:C}", amount); |
输出为:Amount: $0.25;
- 使用十进制货币的重要原因:stackoverflow.com/questions/316727/…
- @是的,我在下面另一个用户给出的现已删除的答案中链接到了这个问题。
- 事实上,我反对货币的十进制(更确切地说是一种特定的货币类型,包括"所有的细节支持"),但是它比使用浮点更好——它仍然是相对精确的,并且在退化的情况下或极端情况下,它会表现出与使用浮点相同的"问题"。
- @微软似乎认为这是合适的。msdn.microsoft.com/en-us/library/364x0z75%28v=vs.80%29.aspx
- 一个非常人为的例子:decimal m = Decimal.MaxValue - 1; (m / 3m * 3m) == m; // false(尽管我认为这类似于说guid很快就会"耗尽")。此外,处理资金的规则可能相当复杂(谁在分割中得到变化?)可能有一个最小的货币单位。当然,这个帖子/问题远低于这些范围。
1 2 3 4 5 6 7 8 9 10 11
| class Money
{
public int Dollar {get; set;}
public int Cent { get; set;}
public Money(int cents)
{
this.Dollar = Math.Floor(cents/100);
this.Cent = cents%100;
}
} |
你可以这样使用它
1 2 3
| int cents = Convert .ToInt32(Console .Readline("Please enter cents to convert:"))
Money money = new Money (cents );
Console .Writeline("$" + money .Dollar +"." + money .Cent); |
- 我们应该使用数组吗?
- 好吧,这要看你需要多少。您可以创建一个列表money=new list();来存储大量这些
- console.readline(frome user)、console.writeline(您有x美分,或x美元和x美分)
- 您是否在询问如何将console.readline和writeline合并到其中?或者说你能做到?或者询问您是否需要一个数组用于读写行?你的最终目标是什么?要解析一个分列表还是从用户那里一次得到一个分,然后直接打印出来?
- 请编辑您的初始问题,以准确询问您需要什么。尽可能多地提供信息,以便我们能帮助您。
- @乔,谢谢亲爱的,我是说我想要一个程序,当用户把它的美分兑换成美元时。示例:100美分=1美元,还是另一个示例125美分=1美元25美分?
- 好的,我已经包含了阅读行,用户输入金额,然后转换并打印出来,您就有了money对象,以防您想要存储它。仍然不知道数组要什么…您不需要数组。
- 哦,我脱下衣服,真有用
- 不用担心,很高兴能帮上忙:)尽管下次,我只想说,我想要一个完整的程序,它可以接收美分,输出美元和美分。
- 哦,天哪,我想和阿瑞一起写这段代码,但我有很多问题。再次感谢您的时间和关注。先生,晚安,提前谢谢
- 如果美分小于10,则格式错误,即"$1.1"?
我想这是我用数组写的最佳答案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Program
{
static void Main (string[] args )
{
Console .WriteLine("Please input your cent or dollar");
int coins = int.Parse(Console .ReadLine());
int[] dollars = new int[2];
dollars [0] = coins / 100;
dollars [1] = coins % 100;
Console .WriteLine("{0} dollar and {1} coins", dollars [0], dollars [1]);
Console .ReadLine();
} |