[英]Decimal Formatting in C#
我想要一个显示最多N个小数位的函数,但如果不需要则不填0,所以如果N = 2,
2.03456 => 2.03
2.03 => 2.03
2.1 => 2.1
2 => 2
我看到的每个字符串格式化的东西都会填充2到2.00之类的值,这是我不想要的
怎么样这个 :
// max. two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
尝试这个:
string s = String.Format("{0:0.##}", value);
我做了一个快速扩展方法:
public static string ToString(this double value, int precision)
{
string precisionFormat = "".PadRight(precision, '#');
return String.Format("{0:0." + precisionFormat + "}", value);
}
使用和输出:
double d = 123.4567;
Console.WriteLine(d.ToString(0)); // 123
Console.WriteLine(d.ToString(1)); // 123.5
Console.WriteLine(d.ToString(2)); // 123.46
Console.WriteLine(d.ToString(3)); // 123.457
Console.WriteLine(d.ToString(4)); // 123.4567
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.