c# double.ToString()最大数字和尾零的数目
本文关键字:数字 ToString double | 更新日期: 2023-09-27 18:18:52
如何将double
转换为具有6个最大数字数的string
并删除尾随零?
我想有:
2.123456123 -> "2.123456"
0.0000012 -> "0.000001" (and not "1.2e-6")
12.45 -> "12.45" (and not "12.450000")
36 -> "36" (and not "36.000000")
使用string.Format("{0:F6"}, value)
输出尾随零和string.Format("{0:G6"}, value)
将不适合第二个例子。
是否可以使用value.ToString("0.######)
?
是否有一个等效的方法来做string.Format()
?
它是可以使用value.ToString("0.######")
。但是,您应该考虑另一件事:double
不是十进制(以10为基数)。您不应该依赖于数字的十进制表示是合理的-许多以10为基数的普通十进制数字需要以2为基数的无限小数展开。
如果你确实关心十进制表示,它可能使用decimal
是一个更好的主意-它也是一个浮点数,但以10为基数。
在这两种情况下,这都涉及到四舍五入——这可能是你想要的,也可能不是你想要的。
tokens是一个具有Price字符串属性的ViewModel:
foreach (var item in tokens)
{
item.Price = double.Parse(item.Price).ToString("#,0");
}
// 123456 => 123,456