chore(trading): add quantum formatting to deal ticket (#4030)
This commit is contained in:
@@ -2,6 +2,7 @@ import BigNumber from 'bignumber.js';
|
||||
|
||||
import {
|
||||
addDecimalsFormatNumber,
|
||||
addDecimalsFormatNumberQuantum,
|
||||
formatNumber,
|
||||
formatNumberPercentage,
|
||||
isNumeric,
|
||||
@@ -23,6 +24,28 @@ describe('number utils', () => {
|
||||
}
|
||||
);
|
||||
|
||||
it.each([
|
||||
{ v: new BigNumber(123000), d: 5, o: '1.23', q: 0.1 },
|
||||
{ v: new BigNumber(123000), d: 3, o: '123.00', q: 0.1 },
|
||||
{ v: new BigNumber(123000), d: 1, o: '12,300.00', q: 0.1 },
|
||||
{ v: new BigNumber(123001000), d: 2, o: '1,230,010.00', q: 0.1 },
|
||||
{ v: new BigNumber(123001), d: 2, o: '1,230', q: 100 },
|
||||
{ v: new BigNumber(123001), d: 2, o: '1,230.01', q: 0.1 },
|
||||
{
|
||||
v: BigNumber('123456789123456789'),
|
||||
d: 10,
|
||||
o: '12,345,678.9123457',
|
||||
q: '0.00003846',
|
||||
},
|
||||
])(
|
||||
'formats with addDecimalsFormatNumberQuantum given number correctly',
|
||||
({ v, d, o, q }) => {
|
||||
expect(addDecimalsFormatNumberQuantum(v.toString(), d, q)).toStrictEqual(
|
||||
o
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([
|
||||
{ v: new BigNumber(123), d: 3, o: '123.00' },
|
||||
{ v: new BigNumber(123.123), d: 3, o: '123.123' },
|
||||
|
||||
@@ -90,6 +90,18 @@ export const formatNumberFixed = (
|
||||
return getFixedNumberFormat(formatDecimals).format(Number(rawValue));
|
||||
};
|
||||
|
||||
export const addDecimalsFormatNumberQuantum = (
|
||||
rawValue: string | number,
|
||||
decimalPlaces: number,
|
||||
quantum: number | string
|
||||
) => {
|
||||
if (isNaN(Number(quantum))) {
|
||||
return addDecimalsFormatNumber(rawValue, decimalPlaces);
|
||||
}
|
||||
const numberDP = Math.max(0, Math.log10(100 / Number(quantum)));
|
||||
return addDecimalsFormatNumber(rawValue, decimalPlaces, Math.ceil(numberDP));
|
||||
};
|
||||
|
||||
export const addDecimalsFormatNumber = (
|
||||
rawValue: string | number,
|
||||
decimalPlaces: number,
|
||||
|
||||
Reference in New Issue
Block a user