string num = 23.6;
Run Code Online (Sandbox Code Playgroud)
我想知道如何将其转换为带小数点后3位的十进制数
decimal nn = 23.600
Run Code Online (Sandbox Code Playgroud)
有什么方法吗?
我尽力了..
首先,你甚至string num = 23.6;不会编译.您需要在字符串中使用双引号string num = "23.6";
如果你想获得这个作为decimal,你需要先用解析它IFormatProvider有.一个NumberDecimalSeparator类似InvariantCulture(如果您的CurrentCulture应用.已经,你不用必须通过第二放慢参数);
decimal nn = decimal.Parse(num, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
现在我们有了貌似这些都是不正确的.请参阅Jon Skeet对此答案的评论以及他在.NET文章中关于十进制浮点的 "保持零"一节.23.6一个decimal值.但作为一个值,23.6,23.60,23.600和23.60000000000是完全一样的,对不对?无论您将哪一个解析为十进制,您将获得与23.6M调试器中相同的值.
怎么办?是的,我们需要将它的文本表示作为23.600.由于我们在文本表示中只需要小数分隔符,因此"F"格式说明符将满足需要.
string str = nn.ToString("F3", CultureInfo.InvariantCulture); // 23.600
Run Code Online (Sandbox Code Playgroud)
这里有两个不同的概念。
您可以将值设置为1并将其视为1.0或1.0000或+000001.00。
你有字符串23.6。您可以使用将其转换为十进制var d = decimal.Parse("23.6")
现在你的值等于23.6你可以使用23.600来查看它d.ToString("F3")
| 归档时间: |
|
| 查看次数: |
12004 次 |
| 最近记录: |