跳转到内容

Decimal

Decimal 类用于表示任意精度的实数。如果预设为 standard,则该类继承自 big.js。因此,.toString() 方法等的结果在不同预设之间可能不一致。

导入

import { Decimal } from "@tai-kun/surrealdb/decodeonly-datatypes";
import { Decimal } from "@tai-kun/surrealdb/encodable-datatypes";
import { Decimal } from "@tai-kun/surrealdb/standard-datatypes";

.constructor()

创建一个新的 Decimal 对象。

new Decimal(source: string); // decode-only, encodable
new Decimal(source: string | number | Decimal); // standard

参数

source

表示实数的字符串。如果预设为 standard,则也可以传入数值。

返回值

如果通过 new 调用,Decimal 将返回其实例。

.toString() 实例 方法 >=decode-only

获取实数的字符串表示。

参数

无。

返回值

返回实数的字符串表示。

.toSurql() 实例 方法 >=encodable

Decimal 对象转换为可嵌入 SurrealQL 的字符串。类似于 .toString(),但通过添加 dec 后缀来告知查询解析器该字符串为 decimal 类型。

.toSurql(): string;

参数

无。

返回值

返回带有 dec 后缀的实数。

例子

import { Decimal } from "@tai-kun/surrealdb/encodable-datatypes";
const decimal = new Decimal("3.14");
console.log(decimal.toSurql());
//-> 3.14dec

.clone() 实例 方法 =standard

复制 Decimal 对象。

.clone(): this;

参数

无。

返回值

返回一个新的 Decimal 对象。如果继承了 Decimal 类,则返回该类的实例。

其他方法

如果使用 standard 预设,Decimal 类继承自 big.jsBig 类,因此实例方法和属性请参考 big.js 文档:

big.js 文档

进阶

Decimal 对象的通用判断

建议使用 isDecimal 函数来判断值是否为 Decimal 对象,而无需依赖预设。由于该函数不使用 instanceof,因此在验证值的预设未知时非常有用。

import { isDecimal } from "@tai-kun/surrealdb";