.NET中Math.Floor()和Math.Truncate()的区别是什么?


当前回答

数学。地板滑到左边… 数学。细胞向右滑动… 数学。截断criiiiss croooss(地板/天花板始终朝向0) 数学。圆润恰恰,非常流畅……(走到最近的一边)

让我们开始工作吧!(⌐□_□)

向左……Math.floor 你们现在都收回来……-- 这次跳了两下……- = 2

大家鼓掌✋✋

你能走多低?你能往下走吗?一直到地板上?

if (this == "wrong")
    return "i don't wanna be right";

Math.truncate(x)也与int(x)相同。 通过去掉一个正的或负的分数,你总是趋向0。

其他回答

Truncate去掉小数点。

它们在功能上与正数相等。区别在于他们处理负数的方式。

例如:

Math.Floor(2.5) = 2
Math.Truncate(2.5) = 2

Math.Floor(-2.5) = -3
Math.Truncate(-2.5) = -2

MSDN链接: ——数学。楼的方法 ——数学。截断方法

附注:小心数学。周围可能不是你期望的那样。

要获得“标准”舍入结果,请使用:

float myFloat = 4.5;
Console.WriteLine( Math.Round(myFloat) ); // writes 4
Console.WriteLine( Math.Round(myFloat, 0, MidpointRounding.AwayFromZero) ) //writes 5
Console.WriteLine( myFloat.ToString("F0") ); // writes 5

试试这个。

Math.Floor() vs Math.Truncate()

Math.Floor(2.56) = 2
Math.Floor(3.22) = 3
Math.Floor(-2.56) = -3
Math.Floor(-3.26) = -4

Math.Truncate(2.56) = 2
Math.Truncate(2.00) = 2
Math.Truncate(1.20) = 1
Math.Truncate(-3.26) = -3
Math.Truncate(-3.96) = -3

还Math.Round ()

   Math.Round(1.6) = 2
   Math.Round(-8.56) = -9
   Math.Round(8.16) = 8
   Math.Round(8.50) = 8
   Math.Round(8.51) = 9

math.floor ()

返回小于或等于指定数字的最大整数。 MSDN system.math.floor

math.truncate ()

计算一个数的积分部分。 MSDN system.math.truncate

Math.Floor ():

它给出小于或等于给定数的最大整数。

    Math.Floor(3.45) =3
    Math.Floor(-3.45) =-4

Math.Truncate ():

它删除数字的小数点后几位并替换为零

Math.Truncate(3.45)=3
 Math.Truncate(-3.45)=-3

从上面的例子中我们还可以看到,对于正数,下限和截断是相同的。

数学。楼层四舍五入,马斯。天花板来了,还有数学。将回合截断至零。因此,数学。截断就像数学。正数的地板,和数学一样。负数的上限。这是参考资料。

为了完整起见,请使用数学。四舍五入到最接近的整数。如果这个数字恰好在两个整数的中间,那么它就会四舍五入到偶数。参考。

参见:暗黑和平的答案。强烈推荐!