📅  最后修改于: 2023-12-03 15:32:50.447000             🧑  作者: Mango
在 C# 中,我们可以使用 Math.Floor()
和 Math.Truncate()
函数来向下取整一个浮点数。虽然这两个函数看起来非常相似,但它们之间有一些微小的区别。下面我们将详细介绍这两个函数之间的区别。
Math.Floor()
函数返回小于或等于指定浮点数的最大整数。这个函数的返回类型是 double
,因为它可能会返回一个小数。让我们看看它的使用示例:
double num1 = 3.14159;
double num2 = -3.14159;
Console.WriteLine(Math.Floor(num1)); // 输出 3.0
Console.WriteLine(Math.Floor(num2)); // 输出 -4.0
在这个例子中,Math.Floor(num1)
返回 3.0
,因为 3
是小于等于 3.14159
的最大整数。Math.Floor(num2)
返回 -4.0
,因为 -4
是小于等于 -3.14159
的最大整数。
Math.Truncate()
函数返回指定的浮点数的整数部分。这个函数的返回类型也是 double
,因为它可能会返回一个小数。让我们看看它的使用示例:
double num1 = 3.14159;
double num2 = -3.14159;
Console.WriteLine(Math.Truncate(num1)); // 输出 3.0
Console.WriteLine(Math.Truncate(num2)); // 输出 -3.0
在这个例子中,Math.Truncate(num1)
返回 3.0
,因为 3.14159
的小数部分为 .14159
,所以截断后只剩下整数部分 3
。Math.Truncate(num2)
返回 -3.0
,因为 -3.14159
的小数部分为 .14159
,所以截断后只剩下整数部分 -3
。
尽管这两个方法都用于向下取整,但它们之间存在一些区别,如下所示:
Math.Floor()
的返回值始终是小于或等于指定的数字,并且它的返回值总是浮点数。Math.Truncate()
的返回值可以是负数,并且它的返回值总是浮点数。Math.Floor()
返回小于或等于传递的参数的最大整数,而 Math.Truncate()
只截取数字的整数部分。在 C# 中,Math.Floor()
和 Math.Truncate()
函数是向下取整的两种方式。虽然它们的功能看起来类似,但它们之间存在细微的差别。如果您需要将数字向下取整并始终得到一个浮点数,那么应该使用 Math.Floor()
。如果您只需要保留数字的整数部分,那么可以使用 Math.Truncate()
。