@softvisio/core
Version:
Softisio core
80 lines (68 loc) • 1.65 kB
JavaScript
class MathExtra {
// public
isBigInt ( value ) {
return typeof value === "bigint";
}
abs ( value ) {
if ( this.isBigInt( value ) ) {
if ( value < 0n ) {
return 0n - value;
}
else {
return value;
}
}
else {
return Math.abs( value );
}
}
trunc ( value, scale ) {
if ( this.isBigInt( value ) ) {
return value;
}
else if ( scale ) {
scale = 10 ** scale;
return Math.trunc( value * scale ) / scale;
}
else {
return Math.trunc( value );
}
}
round ( value, scale ) {
if ( this.isBigInt( value, scale ) ) {
return value;
}
else if ( scale ) {
scale = 10 ** scale;
return Math.round( value * scale ) / scale;
}
else {
return Math.round( value );
}
}
floor ( value, scale ) {
if ( this.isBigInt( value ) ) {
return value;
}
else if ( scale ) {
scale = 10 ** scale;
return Math.floor( value * scale ) / scale;
}
else {
return Math.floor( value );
}
}
ceil ( value, scale ) {
if ( this.isBigInt( value ) ) {
return value;
}
else if ( scale ) {
scale = 10 ** scale;
return Math.ceil( value * scale ) / scale;
}
else {
return Math.ceil( value );
}
}
}
export default new MathExtra();