Compare floats using FMath::IsNearlyEqual() & FMath::IsNearlyZero() in Unreal Engine 5 C++
Written on: 30 May 2025
Syntax
bool FMath::IsNearlyZero(float Value, float ErrorTolerance = UE_SMALL_NUMBER);
bool FMath::IsNearlyEqual(float A, float B, float ErrorTolerance = UE_SMALL_NUMBER);
Explanation
float A = 1.2;
bool bIsAZero = (A - 1.2 == 0.0);
bool bIsANearlyZero = FMath::IsNearlyZero(A - 1.2, UE_KINDA_SMALL_NUMBER);
float B = 2.8;
bool bIsBEqual = (B + 2.8 == B * 2.0);
bool bIsBNearlyEqual = FMath::IsNearlyEqual(B + 2.8, B * 2.0, UE_KINDA_SMALL_NUMBER);
UE_LOG(LogTemp, Warning, TEXT("bIsAZero: %s"), bIsAZero ? TEXT("true") : TEXT("false"));
UE_LOG(LogTemp, Warning, TEXT("bIsANearlyZero: %s"), bIsANearlyZero ? TEXT("true") : TEXT("false"));
UE_LOG(LogTemp, Warning, TEXT("bIsBEqual: %s"), bIsBEqual ? TEXT("true") : TEXT("false"));
UE_LOG(LogTemp, Warning, TEXT("bIsBNearlyEqual: %s"), bIsBNearlyEqual ? TEXT("true") : TEXT("false"));