一尘不染

截断两位小数而不四舍五入

c#

可以说我的值为3.4679并想要3.46,如何将其截断为两位小数而又不取整?

我已经尝试了以下方法,但是所有这三个都给了我3.47:

void Main()
{
    Console.Write(Math.Round(3.4679, 2,MidpointRounding.ToEven));
    Console.Write(Math.Round(3.4679, 2,MidpointRounding.AwayFromZero));
    Console.Write(Math.Round(3.4679, 2));
}

这将返回3.46,但看起来有些肮脏:

void Main()
{
    Console.Write(Math.Round(3.46799999999 -.005 , 2));
}

阅读 493

收藏
2020-05-19

共1个答案

一尘不染

value = Math.Truncate(100 * value) / 100;

注意,这样的分数不能在浮点数中准确表示。

2020-05-19