string num = 23.6;
我想知道如何将其转换为带小数点后3位的十进制数 像
decimal nn = 23.600
有什么方法吗?
答案 0 :(得分:6)
我尽我所能..
首先,您的string num = 23.6;
不会甚至编译。您需要在字符串中使用双引号,例如string num = "23.6";
如果您希望将其作为decimal
,则需要首先使用IFormatProvider
作为NumberDecimalSeparator
InvariantCulture
来.
解析CurrentCulture
如果您的.
已使用decimal nn = decimal.Parse(num, CultureInfo.InvariantCulture);
,则不必须通过第二个参数);
23.6
现在我们有看起来这些不是是真的。请参阅Jon Skeet对此答案的评论以及他在Decimal floating point in .NET文章中的“保留零”部分。decimal
作为23.6
值。但作为一个值,23.60
,23.600
,23.60000000000
和23.6M
完全相同,对吧?无论你将它解析为十进制,你都会得到与调试器中23.600
相同的值。
现在怎样?是的,我们需要将它的文本表示为string str = nn.ToString("F3", CultureInfo.InvariantCulture); // 23.600
。由于我们在文本表示中只需要小数分隔符,The "F"
Format Specifier将满足需要。
titles
答案 1 :(得分:3)
这里有两个不同的概念。
您可以使用 1 的值,并将其视为 1.0 或 1.0000 或 +000001.00 。< / p>
你有字符串 23.6 。您可以使用var d = decimal.Parse("23.6")
现在您的值等于 23.6 ,您可以使用d.ToString("F3")
答案 2 :(得分:0)
答案 3 :(得分:-2)
十进制不是字符串,它不显示尾随零。如果你想要一个显示3个小数位的字符串,包括尾随零,你可以使用string.Format:
decimal nn= 23.5;
var formattedNumber = string.Format("{0,000}", nn);