c# - 如何将字符串转换为小数点后三位的小数?

标签 c# .net

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);

现在我们有 23.6 作为 decimal 值。但是作为一个值,23.623.6023.60023.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# - 如何将字符串转换为小数点后三位的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754394/

相关文章:

c# - 在动态创建的 Pages() 上覆盖 VerifyRenderingInServerForm

c# - 您将如何重构此 LINQ 代码?

c# - 如何确定 Web 应用程序当前是否正在运行

c# - 我如何在 UWP 中的 OnLaunchApplicationAsync for Prism 中实现耗时任务?

.net - 使用级联 CRUD 操作进行单元测试和假存储库实现

c# - 小娜 VCD : set command's Navigate target to a Page in a subfolder

c# - Unity Inspector 在运行时清除变量

.net - 为什么要在 Web 上隐藏异常?

c# - 性能:从泛型派生的类型

c# - 如何实现策略模式的创建/工厂关注点?