我需要格式化double类型,使其具有最小的小数点后两位数,但不限于为十进制数字最大数量最低数量:格式双用型的小数位数
5 -> "5.00"
5.5 -> "5.50"
5.55 -> "5.55"
5.555 -> "5.555"
5.5555 -> "5.5555"
我怎样才能实现呢?
我需要格式化double类型,使其具有最小的小数点后两位数,但不限于为十进制数字最大数量最低数量:格式双用型的小数位数
5 -> "5.00"
5.5 -> "5.50"
5.55 -> "5.55"
5.555 -> "5.555"
5.5555 -> "5.5555"
我怎样才能实现呢?
试试这个
static void Main(string[] args)
{
Console.WriteLine(FormatDecimal(1.678M));
Console.WriteLine(FormatDecimal(1.6M));
Console.ReadLine();
}
private static string FormatDecimal(decimal input)
{
return Math.Abs(input - decimal.Parse(string.Format("{0:0.00}", input))) > 0 ?
input.ToString() :
string.Format("{0:0.00}", input);
}
您可以使用非可选数字的0
格式specificer,并#
可选数字:
n.ToString("0.00###")
这个例子给你最多五个十进制数字,您可以根据需要添加更多的#
位置。
像ToString("0.00#")
的东西应该工作
在这种情况下,将最大到3位小数,所以根据需要添加哈希值。
所以,你要加倍转换为字符串,并确保它有至少2个十进制数字? –
@Bojan Kogoj,是的 – SiberianGuy