コンテンツにスキップ

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 オブジェクトの汎用的な判定

プリセットに依存せずに値が Decimal オブジェクトかを判定するには isDecimal 関数を使うことを推奨します。この関数は instanceof を使用しないため、検証する値のプリセットが不明な場合に役立ちます。

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