c# - 在 C# 中截断 double 值的位数

标签 c#

如何在 C# 中截断 double 值的前导数字,我试过 Math.Round(doublevalue,2) 但没有给出要求的结果。而且我在数学课上没有找到任何其他方法。

例如,我的值为 12.123456789,我只需要 12.12。

最佳答案

编辑:有人指出,这些方法舍入值而不是截断。很难真正截断 double 值,因为它实际上不是在正确的基数中......但截断 decimal 值更可行。

您应该使用适当的格式字符串,customstandard ,例如

string x = d.ToString("0.00");

string x = d.ToString("F2");

值得一提的是,double 值本身并不“知道”它有多少小数位。只有当您将它转换为字符串时,这样做才真正有意义。使用 Math.Round 将获得最接近 x.xx00000 的 double 值(如果您明白我的意思),但它几乎肯定不会是精确值 x.xx00000 由于二进制浮点类型的工作方式。

如果除了字符串格式化之外,您还需要它,您应该考虑使用decimal。该值实际代表什么?

我在 binary floating point 上有文章和 decimal floating point在 .NET 中,您可能会发现它很有用。

关于c# - 在 C# 中截断 double 值的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1426857/

相关文章:

c# - 如何在C#中附加文件时显示进度条

c# - Scripts.Render 不工作

c# - 使用 VisualStateManager 启动和停止 Storyboard

javascript - JQuery 设置 ASP 文本框的值并让 .Text 属性返回该值

c# - 使用 JSON 的级联下拉列表不会带来新记录

c# - WPF和MVVM模型与viewModel分离

c# - 通过资源文件将本地化应用到 DisplayAttribute

c# - 为什么 ArrayList 的同步包装器不起作用?

c# - 获取 LINQ 表达式中的最早日期

c# - smallint转int的datarow字段扩展方法