C# - 每次向下循环浮动

时间:2012-07-17 23:07:41

标签: c# rounding

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

因此,浮点数1.2将为1,而1.8也将为1。

1.2f 1.0f

1.8f 1.0f

谢谢!

4 个答案:

答案 0 :(得分:16)

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;        
        }
    }
}

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

float f = 1.2;
int rounded = (int)f;

答案 3 :(得分:1)

Math.Ceiling(value)
Math.Floor(value); //your answer