如何在 C# 中截断 double 值的前导数字,我试过 Math.Round(doublevalue,2) 但没有给出要求的结果。而且我在数学课上没有找到任何其他方法。
例如,我的值为 12.123456789,我只需要 12.12。
最佳答案
编辑:有人指出,这些方法舍入值而不是截断。很难真正截断 double
值,因为它实际上不是在正确的基数中......但截断 decimal
值更可行。
您应该使用适当的格式字符串,custom或 standard ,例如
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/