繁体   English   中英

字符串格式C#

[英]String format C#

我想在执行string.format之后以以下格式获取货币值。 我使用了几种格式,但是没有一种格式符合我的要求。

Value    After Format
0        $0
123      $123
1234     $1,234
12345    $12,345

我使用了以下代码,它工作正常。

Console.WriteLine(string.Format("{00:$#,#}", 12345));

但问题是,当值变为0时,它只打印$而我要打印$0

谢谢

格式字符串中的#表示如果不为零,则显示一个数字。 因此,当您的值为0时,它将不会显示任何内容。

因此,您需要将其更改为

Console.WriteLine(string.Format("{00:$#,0}", mynumber));

但是,您也可以使用内置货币字符串格式设置选项。

该文档整节介绍了货币格式https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings#CFormatString

这样你就可以

Console.WriteLine(string.Format("{0:c}", 99.556551));

或者,如果您不希望小数位

Console.WriteLine(string.Format("{0:C0}", 99.556551));

尽管这也会使值取整,但是如果您自己控制它可能会更好。

就像下面的@RufusL所提醒的那样,在Console.Writeline,不需要string.format Console.Writeline,因此您还可以进一步简化它。

Console.WriteLine("{0:C0}", 99.556551);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM