PHP's bccomp in TypeScript

How to use

Install via yarn add locutus and import: import { bccomp } from 'locutus/php/bc/bccomp'.

Or with CommonJS: const { bccomp } = require('locutus/php/bc/bccomp')

Use a bundler that supports tree-shaking so you only ship the functions you actually use. Vite, webpack, Rollup, and Parcel all handle this. For server-side use this is less of a concern.

Examples

These examples are extracted from test cases that automatically verify our functions against their native counterparts.

#codeexpected result
1bccomp('-1', '5', 4)-1
2bccomp('1928372132132819737213', '8728932001983192837219398127471')-1
3bccomp('1.00000000000000000001', '1', 2)0
4bccomp('97321', '2321')1

Dependencies

This function uses the following Locutus functions:

  • _bc (php/_helpers)

Here's what our current TypeScript equivalent to PHP's bccomp looks like.

import { _bc as bc } from '../_helpers/_bc.ts'

export function bccomp(leftOperand: string | number, rightOperand: string | number, scale?: number): number {
// discuss at: https://locutus.io/php/bccomp/
// original by: lmeyrick (https://sourceforge.net/projects/bcmath-js/)
// example 1: bccomp('-1', '5', 4)
// returns 1: -1
// example 2: bccomp('1928372132132819737213', '8728932001983192837219398127471')
// returns 2: -1
// example 3: bccomp('1.00000000000000000001', '1', 2)
// returns 3: 0
// example 4: bccomp('97321', '2321')
// returns 4: 1

const libbcmath = bc()

if (typeof scale === 'undefined') {
scale = libbcmath.scale
}
scale = scale < 0 ? 0 : scale

let first = libbcmath.bc_init_num()
let second = libbcmath.bc_init_num()

// note bc_ not php_str2num
first = libbcmath.bc_str2num(leftOperand.toString(), scale)
// note bc_ not php_str2num
second = libbcmath.bc_str2num(rightOperand.toString(), scale)
return libbcmath.bc_compare(first, second)
}

Improve this function

Locutus is a community effort following The McDonald's Theory: we ship first iterations, hoping others will improve them. If you see something that could be better, we'd love your contribution.

View on GitHub · Edit on GitHub · View Raw


« More PHP bc functions


Star