如何在.NET中格式化小数类型时去掉小数部分?我需要两种变体的通用语法。有什么温和的解决方案吗?
decimal a = 1.22M;
decimal b = 1.00M;
String.Format("${0}", a); // result is $1.22
String.Format("${0}", b); // result is $1.00, should be $1, HOW?发布于 2010-09-13 17:46:55
假设“公共语法”意味着您需要一个解决方案来给出两个输出,String.Format("${0:#.##}", x)就能做到这一点。当x为1.00M时,结果将为"$1"。当x为1.22M时,结果为"$1.22"。
发布于 2010-09-13 17:42:38
尝试这些-两者都将为当前系统输出适当的货币符号:
a.ToString("C2"); // Outputs 2DP
b.ToString("C0"); // Outputs no DP如果需要提供特定的货币符号,请使用与上面相同的符号,但用N代替C。
发布于 2010-09-13 17:42:55
Decimal类型旨在跟踪它有多少有效位数。这就是1.00M.ToString()返回字符串1.00的原因。
要打印不带派别部分的精度,可以使用格式说明符N和Decimal 0
1.22M.ToString("N0") => "1"
1.00M.ToString("N0") => "1"
1.77M.ToString("N0") => "2"这将在转换过程中舍入Decimal。
https://stackoverflow.com/questions/3699258
复制相似问题