# 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();