c# – 如何将字符串转换为带小数点后3位的十进制数?

string num = 23.6;

我想知道如何将其转换为带小数点后3位的十进制数
喜欢

decimal nn = 23.600 

有什么方法吗?

最佳答案
我尽力了..

首先你的字符串num = 23.6;甚至不会编译.您需要对字符串使用双引号,如字符串num =“23.6”;

如果你想把它作为小数,你需要先用一个IFormatProvider解析它.像InvariantCulture那样的NumberDecimalSeparator(如果你的CurrentCulture使用了.已经,你不必通过第二个参数);

decimal nn = decimal.Parse(num, CultureInfo.InvariantCulture);

现在我们有一个23.6作为十进制值.但作为一个值,23.6,23.60,23.600和23.60000000000完全相同,对吗?无论您将哪一个解析为十进制,您将获得与调试器中的23.6M相同的值.看起来这些都不是真的.请参阅Jon Skeet对此答案的评论以及他在Decimal floating point in .NET文章中的“保持零”部分.

怎么办?是的,我们需要将它的文本表示形式设置为23.600.由于我们在文本表示中只需要小数分隔符,因此The "F" Format Specifier将满足需求.

string str = nn.ToString("F3", CultureInfo.InvariantCulture); // 23.600

转载注明原文:c# – 如何将字符串转换为带小数点后3位的十进制数? - 代码日志