csharp/ACEmulator/ACE/Source/ACE.Common/Extensions/FloatExtensions.cs

FloatExtensions.cs
using System;

namespace ACE.Common.Extensions
{
    public static clast FloatExtensions
    {
        public static int Round(this float num, int decimalPlaces = 0)
        {
            return (int)Math.Round(num, decimalPlaces, MidpointRounding.AwayFromZero);
        }

        public static int Round(this double num, int decimalPlaces = 0)
        {
            return (int)Math.Round(num, decimalPlaces, MidpointRounding.AwayFromZero);
        }

        public static float Truncate(this float num, int decimalPlaces)
        {
            var multiplier = Math.Pow(10, decimalPlaces);

            return (float)(Math.Truncate(num * multiplier) / multiplier);
        }

        public static bool EpsilonEquals(this float num, float val/*, int decimalPlaces = 4*/)
        {
            //var epsilon = 1.0f / Math.Pow(10, decimalPlaces);
            var epsilon = 0.0001f;

            return Math.Abs(num - val) < epsilon;
        }
    }
}