# Math
# 说明
Math命名空间包含了用于数学计算的工具,特别是浮点数精度处理相关的功能。
# 如何使用
// 使用Math命名空间的函数
bool isZero = Math::IsZero(0.00000001f);
bool areEqual = Math::NearEqual(0.1f + 0.2f, 0.3f);
// 使用Math命名空间的Float_t类型
Math::Float_t floatVal(3.14159f);
# 常量
# M_PI
#define M_PI 3.14159265358979323846f
表示圆周率π的值。
float halfCircleRadians = M_PI; // 180度的弧度值
# IsZero
bool IsZero(float A)
检查浮点数是否为零(考虑浮点数精度问题)。
参数名字 | 参数类型 | 描述 |
---|---|---|
A | float | 要检查的浮点数 |
float value = 0.00000001f;
bool isZero = Math::IsZero(value);
# NearEqual
bool NearEqual(float A, float B, int maxUlpsDiff = 4)
检查两个浮点数是否近似相等,考虑浮点数精度问题。
参数名字 | 参数类型 | 描述 |
---|---|---|
A | float | 第一个浮点数 |
B | float | 第二个浮点数 |
maxUlpsDiff | int | 最大Units in Last Place差异,默认为4 |
float value1 = 0.1f + 0.2f;
float value2 = 0.3f;
bool areEqual = Math::NearEqual(value1, value2);
# 类:Float_t
浮点数处理类,提供了对浮点数内部组成部分的访问和操作功能。
Math::Float_t floatVal(3.14159f);
# Float_t.Negative
bool Negative() const
判断浮点数是否为负数。
Math::Float_t floatVal(-3.14f);
bool isNegative = floatVal.Negative(); // 返回 true
# Float_t.RawMantissa
int32_t RawMantissa() const
获取浮点数的原始尾数位。
Math::Float_t floatVal(3.14f);
int32_t mantissa = floatVal.RawMantissa();
# Float_t.RawExponent
int32_t RawExponent() const
获取浮点数的原始指数位。
Math::Float_t floatVal(3.14f);
int32_t exponent = floatVal.RawExponent();