Home Reference Source
import BigDecimal from 'konpeito/src/math/BigDecimal.mjs'
public class | source

BigDecimal

任意精度浮動小数点演算クラス (immutable)

Static Member Summary

Static Public Members
public static get

1

public static get

10

public static get

2

public static get

0

Static Method Summary

Static Public Methods
public static

BigDecimal を作成

public static

オブジェクトを新規作成時に環境設定を変更しなかった場合に設定されるデフォルト設定を取得

public static

オブジェクトを新規作成時に環境設定を変更しなかった場合に設定されるデフォルト設定

public static

指定した数値から BigDecimal 型に変換

Static Private Methods
private static

BigDecimal を作成

private static

BigInteger を作成

private static

_toFloat(number: BigDecimal): number

実数を作成

private static

_toInteger(number: BigDecimal): number

整数を作成

Constructor Summary

Public Constructor
public

任意精度浮動小数点を作成 配列で設定する場合は、 BigInteger, [スケール値=0], [環境=default], [精度設定=default] オブジェクトで設定する場合は、 integer, [scale=0], [default_context=default], [context=default]

Member Summary

Public Members
public get

doubleValue: number: *

64ビット実数に変換

public get

floatValue: number: *

32ビット実数に変換

public get

intValue: number: *

32ビット整数に変換

public get

intValueExact: number: *

32ビット整数に変換 変換に失敗した場合は例外

Private Members
private

_scale: number

スケール

private

初期化時に使用したcontext

private

int_string: string

文字列化した整数部分(キャッシュ用)

private

整数部分

Method Summary

Public Methods
public

絶対値

public

add(number: BigDecimal, context: MathContext): BigDecimal

加算

public

ディープコピー

public

compareTo(number: BigDecimal): number

値同士を比較

public

div(number: BigDecimal, type: {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}): BigDecimal

割り算

public

divide(number: BigDecimal, type: {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}): BigDecimal

割り算

public

割り算と余り

public

小数点まで求めない割り算

public

equals(number: BigDecimal): boolean

等式 精度やスケール含めて等しいかをテストする

public

最大値

public

最小値

public

mod(number: BigDecimal, context: MathContext): BigDecimal

割り算の正の余り

public

小数点の位置を左へ移動

public

小数点の位置を右へ移動

public

mul(number: BigDecimal, context: MathContext): BigDecimal

乗算

public

乗算

public

負数

public

正数

public

pow(number: BigDecimal, context: MathContext): BigDecimal

累乗 巨大な乗算をする場合は例外を発生させる

public

precision(): number

精度

public

rem(number: BigDecimal, context: MathContext): BigDecimal

割り算の余り

public

環境設定を切り替える

public

scale(): number

倍率

public

精度は変更させずスケールのみを変更させ10の倍数を乗算

public

setScale(new_scale: BigDecimal, rounding_mode: RoundingModeEntity, mc: MathContext): BigDecimal

スケールの再設定

public

sign(): number

符号値 1, -1, 0の場合は0を返す

public

signum(): number

符号値 1, -1, 0の場合は0を返す

public

数字の右側にある0を取り除き、スケールを正規化

public

sub(number: BigDecimal, context: MathContext): BigDecimal

減算

public

減算

public

BigInteger に変換

public

BigInteger に変換 変換に失敗した場合は例外

public

技術表記法による文字列化 指数が不要の場合は指数表記なし

public

toPlainString(): string

指数表記なしの文字列化

public

科学的表記法による文字列化

public

toString(): string

文字列化 指数が不要の場合は指数表記なし

public

設定された精度で表すことができる最も小さな値

public

指数表記部分を取り除いた整数

Private Methods
private

符号を除いた文字列を作成 キャッシュがなければ作成し、キャッシュがあればそれを返す

Static Public Members

public static get ONE: BigDecimal: * source

1

Return:

BigDecimal

1

public static get TEN: BigDecimal: * source

10

Return:

BigDecimal

10

public static get TWO: BigDecimal: * source

2

Return:

BigDecimal

2

public static get ZERO: BigDecimal: * source

0

Return:

BigDecimal

0

Static Public Methods

public static create(number: BigDecimal): BigDecimal source

BigDecimal を作成

Params:

NameTypeAttributeDescription
number BigDecimal

任意精度実数データ

Return:

BigDecimal

public static getDefaultContext(): MathContext source

オブジェクトを新規作成時に環境設定を変更しなかった場合に設定されるデフォルト設定を取得

Return:

MathContext

public static setDefaultContext(context: MathContext) source

オブジェクトを新規作成時に環境設定を変更しなかった場合に設定されるデフォルト設定

Params:

NameTypeAttributeDescription
context MathContext
  • optional
  • default: MathContext.DECIMAL128

public static valueOf(x: BigDecimal, scale: BigDecimal): BigDecimal source

指定した数値から BigDecimal 型に変換

Params:

NameTypeAttributeDescription
x BigDecimal
scale BigDecimal
  • optional

Return:

BigDecimal

Static Private Methods

private static _toBigDecimal(number: BigDecimal): BigDecimal source

BigDecimal を作成

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

BigDecimal

private static _toBigInteger(number: BigDecimal): BigInteger source

BigInteger を作成

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

BigInteger

private static _toFloat(number: BigDecimal): number source

実数を作成

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

number

private static _toInteger(number: BigDecimal): number source

整数を作成

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

number

Public Constructors

public constructor(number: BigDecimal) source

任意精度浮動小数点を作成 配列で設定する場合は、 BigInteger, [スケール値=0], [環境=default], [精度設定=default] オブジェクトで設定する場合は、 integer, [scale=0], [default_context=default], [context=default]

Params:

NameTypeAttributeDescription
number BigDecimal

任意精度実数データ

Public Members

public get doubleValue: number: * source

64ビット実数に変換

Return:

number

public get floatValue: number: * source

32ビット実数に変換

Return:

number

public get intValue: number: * source

32ビット整数に変換

Return:

number

public get intValueExact: number: * source

32ビット整数に変換 変換に失敗した場合は例外

Return:

number

Private Members

private _scale: number source

スケール

private default_context: MathContext source

初期化時に使用したcontext

private int_string: string source

文字列化した整数部分(キャッシュ用)

private integer: BigInteger source

整数部分

Public Methods

public abs(mc: MathContext): BigDecimal source

絶対値

Params:

NameTypeAttributeDescription
mc MathContext
  • optional

計算に使用する設定

Return:

BigDecimal

abs(A)

public add(number: BigDecimal, context: MathContext): BigDecimal source

加算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、加算先の設定デフォルト値を使用する

Return:

BigDecimal

A + B

public clone(): BigDecimal source

ディープコピー

Return:

BigDecimal

public compareTo(number: BigDecimal): number source

値同士を比較

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

number

A > B ? 1 : (A === B ? 0 : -1)

public div(number: BigDecimal, type: {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}): BigDecimal source

割り算

Params:

NameTypeAttributeDescription
number BigDecimal
type {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}
  • optional

計算に使用する scale, context, roundingMode を設定する

Return:

BigDecimal

A / B

public divide(number: BigDecimal, type: {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}): BigDecimal source

割り算

Params:

NameTypeAttributeDescription
number BigDecimal
type {scale: ?number, context: ?MathContext, roundingMode: ?RoundingModeEntity}
  • optional

計算に使用する scale, context, roundingMode を設定する

Return:

BigDecimal

public divideAndRemainder(number: BigDecimal, context: MathContext): Array<BigDecimal> source

割り算と余り

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、割る先の設定デフォルト値を使用する

Return:

Array<BigDecimal>

[C = (int)(A / B), A - C * B]

public divideToIntegralValue(number: BigDecimal, context: MathContext): BigDecimal source

小数点まで求めない割り算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、割る先の設定デフォルト値を使用する

Return:

BigDecimal

(int)(A / B)

public equals(number: BigDecimal): boolean source

等式 精度やスケール含めて等しいかをテストする

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

boolean

A === B

public max(number: BigDecimal): BigDecimal source

最大値

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

BigDecimal

max([A, B])

public min(number: BigDecimal): BigDecimal source

最小値

Params:

NameTypeAttributeDescription
number BigDecimal

Return:

BigDecimal

min([A, B])

public mod(number: BigDecimal, context: MathContext): BigDecimal source

割り算の正の余り

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、割る先の設定デフォルト値を使用する

Return:

BigDecimal

A mod B

public movePointLeft(n: BigDecimal): BigDecimal source

小数点の位置を左へ移動

Params:

NameTypeAttributeDescription
n BigDecimal

Return:

BigDecimal

public movePointRight(n: BigDecimal): BigDecimal source

小数点の位置を右へ移動

Params:

NameTypeAttributeDescription
n BigDecimal

Return:

BigDecimal

public mul(number: BigDecimal, context: MathContext): BigDecimal source

乗算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、乗算先の設定デフォルト値を使用する

Return:

BigDecimal

A * B

public multiply(number: BigDecimal, context: MathContext): BigDecimal source

乗算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、乗算先の設定デフォルト値を使用する

Return:

BigDecimal

A * B

public negate(mc: MathContext): BigDecimal source

負数

Params:

NameTypeAttributeDescription
mc MathContext
  • optional

計算に使用する設定

Return:

BigDecimal

A

public plus(mc: MathContext): BigDecimal source

正数

Params:

NameTypeAttributeDescription
mc MathContext
  • optional

計算に使用する設定

Return:

BigDecimal

+A

public pow(number: BigDecimal, context: MathContext): BigDecimal source

累乗 巨大な乗算をする場合は例外を発生させる

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、累乗先の設定デフォルト値を使用する

Return:

BigDecimal

pow(A, B)

public precision(): number source

精度

Return:

number

public rem(number: BigDecimal, context: MathContext): BigDecimal source

割り算の余り

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、割る先の設定デフォルト値を使用する

Return:

BigDecimal

A % B

public round(mc: MathContext): BigDecimal source

環境設定を切り替える

Params:

NameTypeAttributeDescription
mc MathContext

切り替え先の設定

Return:

BigDecimal

public scale(): number source

倍率

Return:

number

public scaleByPowerOfTen(n: BigDecimal): BigDecimal source

精度は変更させずスケールのみを変更させ10の倍数を乗算

Params:

NameTypeAttributeDescription
n BigDecimal

Return:

BigDecimal

A * 10^floor(n)

public setScale(new_scale: BigDecimal, rounding_mode: RoundingModeEntity, mc: MathContext): BigDecimal source

スケールの再設定

Params:

NameTypeAttributeDescription
new_scale BigDecimal

新しいスケール

rounding_mode RoundingModeEntity
  • optional
  • default: RoundingMode.UNNECESSARY

精度を変換する際の丸め方

mc MathContext
  • optional

切り替え先の設定(これのみ変更する場合は、roundを使用すること)

Return:

BigDecimal

public sign(): number source

符号値 1, -1, 0の場合は0を返す

Return:

number

public signum(): number source

符号値 1, -1, 0の場合は0を返す

Return:

number

public stripTrailingZeros(): BigDecimal source

数字の右側にある0を取り除き、スケールを正規化

Return:

BigDecimal

public sub(number: BigDecimal, context: MathContext): BigDecimal source

減算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、減算先の設定デフォルト値を使用する

Return:

BigDecimal

A - B

public subtract(number: BigDecimal, context: MathContext): BigDecimal source

減算

Params:

NameTypeAttributeDescription
number BigDecimal
context MathContext
  • optional

計算に使用する設定、省略した場合は、減算先の設定デフォルト値を使用する

Return:

BigDecimal

A - B

public toBigInteger(): BigInteger source

BigInteger に変換

Return:

BigInteger

public toBigIntegerExact(): BigInteger source

BigInteger に変換 変換に失敗した場合は例外

Return:

BigInteger

public toEngineeringString(): string source

技術表記法による文字列化 指数が不要の場合は指数表記なし

Return:

string

public toPlainString(): string source

指数表記なしの文字列化

Return:

string

public toScientificNotation(e_len: BigDecimal): string source

科学的表記法による文字列化

Params:

NameTypeAttributeDescription
e_len BigDecimal

指数部の桁数

Return:

string

public toString(): string source

文字列化 指数が不要の場合は指数表記なし

Return:

string

public ulp(): BigDecimal source

設定された精度で表すことができる最も小さな値

Return:

BigDecimal

public unscaledValue(): BigInteger source

指数表記部分を取り除いた整数

Return:

BigInteger

Private Methods

private _getUnsignedIntegerString(): string source

符号を除いた文字列を作成 キャッシュがなければ作成し、キャッシュがあればそれを返す

Return:

string