@0xtorch/big-decimal
Version:
An arbitrary precision Decimal type for TypeScript that extends BigInt.
13 lines (10 loc) • 483 B
text/typescript
import { removeTrailingZeros } from './removeTrailingZeros'
import type { BigDecimal } from './type'
export const minus = (x: BigDecimal, y: BigDecimal): BigDecimal => {
// adjust the decimals and minus the values.
const decimals = Math.max(x.decimals, y.decimals)
const valueX = x.value * 10n ** BigInt(decimals - x.decimals)
const valueY = y.value * 10n ** BigInt(decimals - y.decimals)
const value = valueX - valueY
return removeTrailingZeros({ value, decimals })
}