GFBigNumber¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/foundation/numeric/gf_big_number.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:值对象 (
value_object) - 首次版本:
3.17.0
面向挂机/放置场景的近似大数值对象。 使用科学计数法的尾数 + 指数表示任意量级的数值, 适合做超出原生 int/float 直观显示范围后的比较、加减乘除与格式化输入。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 属性 | mantissa |
var mantissa: float = 0.0 |
| 属性 | exponent |
var exponent: int = 0 |
| 方法 | zero |
static func zero() -> GFBigNumber: |
| 方法 | one |
static func one() -> GFBigNumber: |
| 方法 | from_int |
static func from_int(value: int) -> GFBigNumber: |
| 方法 | from_float |
static func from_float(value: float) -> GFBigNumber: |
| 方法 | from_string |
static func from_string(value: String) -> GFBigNumber: |
| 方法 | from_variant |
static func from_variant(value: Variant) -> GFBigNumber: |
| 方法 | clone |
func clone() -> GFBigNumber: |
| 方法 | is_zero |
func is_zero() -> bool: |
| 方法 | is_negative |
func is_negative() -> bool: |
| 方法 | abs_value |
func abs_value() -> GFBigNumber: |
| 方法 | negated |
func negated() -> GFBigNumber: |
| 方法 | compare_to |
func compare_to(other: GFBigNumber) -> int: |
| 方法 | add |
func add(other: GFBigNumber) -> GFBigNumber: |
| 方法 | subtract |
func subtract(other: GFBigNumber) -> GFBigNumber: |
| 方法 | multiply |
func multiply(other: GFBigNumber) -> GFBigNumber: |
| 方法 | divide |
func divide(other: GFBigNumber) -> GFBigNumber: |
| 方法 | powi |
func powi(power: int) -> GFBigNumber: |
| 方法 | powf |
func powf(power: float) -> GFBigNumber: |
| 方法 | to_float |
func to_float() -> float: |
| 方法 | to_plain_string |
func to_plain_string(decimal_places: int = _DEFAULT_PLAIN_DECIMALS, trim_zeroes: bool = true) -> String: |
| 方法 | to_scientific_string |
func to_scientific_string( decimal_places: int = 2, trim_zeroes: bool = true, use_truncation: bool = false ) -> String: |
属性¶
mantissa¶
- API:
public
归一化后的尾数。非零时其绝对值始终落在 [1, 10) 区间内。
exponent¶
- API:
public
以 10 为底的指数。
方法¶
zero¶
- API:
public
创建一个值为 0 的大数。
返回:零值实例。
one¶
- API:
public
创建一个值为 1 的大数。
返回:一值实例。
from_int¶
- API:
public
从 int 构建大数。
参数:
| 名称 | 说明 |
|---|---|
value |
原始整数。 |
返回:归一化后的大数实例。
from_float¶
- API:
public
从 float 构建大数。
参数:
| 名称 | 说明 |
|---|---|
value |
原始浮点数。 |
返回:归一化后的大数实例。
from_string¶
- API:
public
从字符串构建大数,支持普通写法与科学计数法。
参数:
| 名称 | 说明 |
|---|---|
value |
原始字符串,如 "12345"、"1.23e8"。 |
返回:解析后的大数实例。
from_variant¶
- API:
public
从任意支持的 Variant 构建大数。
参数:
| 名称 | 说明 |
|---|---|
value |
支持 int/float/String/GFBigNumber/GFFixedDecimal。 |
返回:对应的大数实例。
结构:
value: Variant numeric value accepted by GFBigNumber.
clone¶
- API:
public
克隆当前大数。
返回:内容相同的新实例。
is_zero¶
- API:
public
当前值是否为零。
返回:为零时返回 true。
is_negative¶
- API:
public
当前值是否为负数。
返回:为负时返回 true。
abs_value¶
- API:
public
获取绝对值。
返回:新的大数实例。
negated¶
- API:
public
获取相反数。
返回:新的大数实例。
compare_to¶
- API:
public
比较当前值与另一个大数。
参数:
| 名称 | 说明 |
|---|---|
other |
另一个大数实例。 |
返回:当前值大于 other 返回 1,小于返回 -1,相等返回 0。
add¶
- API:
public
与另一个大数相加。
参数:
| 名称 | 说明 |
|---|---|
other |
另一个大数实例。 |
返回:相加结果。
subtract¶
- API:
public
与另一个大数相减。
参数:
| 名称 | 说明 |
|---|---|
other |
另一个大数实例。 |
返回:相减结果。
multiply¶
- API:
public
与另一个大数相乘。
参数:
| 名称 | 说明 |
|---|---|
other |
另一个大数实例。 |
返回:相乘结果。
divide¶
- API:
public
与另一个大数相除。
参数:
| 名称 | 说明 |
|---|---|
other |
另一个大数实例。 |
返回:相除结果。
powi¶
- API:
public
将当前大数提升到整数次幂。
参数:
| 名称 | 说明 |
|---|---|
power |
幂指数。 |
返回:幂运算结果。
powf¶
- API:
public
将当前大数提升到浮点次幂。
参数:
| 名称 | 说明 |
|---|---|
power |
幂指数。 |
返回:幂运算结果。
to_float¶
- API:
public
将当前值转换为 float。
返回:可表达时返回浮点值,超出范围时返回 +/-INF。
to_plain_string¶
- API:
public
func to_plain_string(decimal_places: int = _DEFAULT_PLAIN_DECIMALS, trim_zeroes: bool = true) -> String:
在量级适中时输出普通十进制字符串,过大时会回退到科学计数法。
参数:
| 名称 | 说明 |
|---|---|
decimal_places |
小数位数。 |
trim_zeroes |
是否裁掉尾部 0。 |
返回:普通字符串表示。
to_scientific_string¶
- API:
public
func to_scientific_string( decimal_places: int = 2, trim_zeroes: bool = true, use_truncation: bool = false ) -> String:
输出科学计数法字符串。
参数:
| 名称 | 说明 |
|---|---|
decimal_places |
小数位数。 |
trim_zeroes |
是否裁掉尾部 0。 |
use_truncation |
是否使用截断而不是四舍五入。 |
返回:科学计数法字符串。