public static float PreviousFloat(float value) { return(MathF.BitDecrement(value)); //if (value <= 0) return -NextFloat(-value); //if (float.IsNaN(value)) return value; //if (float.IsNegativeInfinity(value)) return value; //int bits = BitConverter.SingleToInt32Bits(value); //return BitConverter.Int32BitsToSingle(bits - 1); }
private static void Main(string[] args) { bool f = getSomeBool(); Console.WriteLine(f); Console.WriteLine(f == true); Console.WriteLine(f.Equals(true)); void print(float x) => Console.WriteLine("x = {0,6} : 0x{1:X}", x, BitConverter.DoubleToInt64Bits(x)); float x = 0f; print(x); x = MathF.BitDecrement(x); print(x); x = MathF.BitIncrement(x); print(x); }
/// <inheritdoc cref="MathF.BitDecrement(float)"/> public static float BitDecrement(this float value) => MathF.BitDecrement(value);