5

如何每次将浮点数四舍五入到最接近的整数,但只能向下取整。我需要最快的方法。

所以 float 1.2 将是 1,而 1.8 也将是 1。

1.2f将是1.0f

1.8f将是1.0f

谢谢!

4

4 回答 4

17

Math.Floor()是你的朋友。

示例代码:

using System;
using System.Text;

namespace math
{
    class Program
    {
        static void Main(string[] args)
        {
            //
            // Two values.
            //
            float value1 = 123.456F;
            float value2 = 123.987F;
            //
            // Take floors of these values.
            //
            float floor1 = (float)Math.Floor(value1);
            float floor2 = (float)Math.Floor(value2);

            //
            // Write first value and floor.
            //
            Console.WriteLine(value1);
            Console.WriteLine(floor1);
            //
            // Write second value and floor.
            //
            Console.WriteLine(value2);
            Console.WriteLine(floor2);

            return;        
        }
    }
}
于 2012-07-17T23:10:21.347 回答
4

通过转换为 int,您将截断小数

float f = 1.2;
int rounded = (int)f;
于 2012-07-17T23:12:01.607 回答
2

System.Math.Floor(double)应该做的伎俩

于 2012-07-17T23:09:55.540 回答
1
Math.Ceiling(value)
Math.Floor(value); //your answer
于 2012-07-17T23:12:16.557 回答