string num = 23.6;
我想知道如何将它转换成小数点后三位的小数 喜欢
decimal nn = 23.600
有什么方法吗?
最佳答案
我尽力了..
首先,您的 string num = 23.6;
甚至 都无法编译。您需要在字符串中使用双引号,例如 string num = "23.6";
如果你想把它作为一个decimal
,你需要先用一个IFormatProvider
解析它,它有.
作为一个NumberDecimalSeparator
。喜欢InvariantCulture
(如果您的 CurrentCulture
已经使用了 .
,您不必传递第二个参数);
decimal nn = decimal.Parse(num, CultureInfo.InvariantCulture);
现在我们有 看起来这些不是真的。请参阅 Jon Skeet 对此答案的评论以及他在 Decimal floating point in .NET 上的“保持零”部分文章。23.6
作为 decimal
值。但是作为一个值,23.6
、23.60
、23.600
和 23.60000000000
是完全相同的,对吧?无论您将哪一个解析为十进制,您都会得到与调试器中的 23.6M
相同的值。
现在呢?是的,我们需要将它的文本 表示形式作为 23.600
。由于我们只需要文本表示中的小数点分隔符,The "F"
Format Specifier将满足需求。
string str = nn.ToString("F3", CultureInfo.InvariantCulture); // 23.600
关于c# - 如何将字符串转换为小数点后三位的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754394/