import Big from 'big.js'; import * as R from 'ramda'; import { formatDecimalNoRound } from './formatDecimalNoRound'; import { RestParams } from './interface'; /** * 大数字转小数字 * @param translateUnit */ export const bigToSmall = (translateUnit: number) => { return (num: number | string, params?: RestParams) => { const decimalNumber = params?.decimalNumber || 2; const fn = params?.fn || 'toFixed'; if (R.isEmpty(num) || R.isNil(num)) return num; if (isNaN(Number(num))) { return NaN; } const newNumber = new Big(Number(num)).div(translateUnit); if (fn === 'toFixed') { return Number(newNumber.toFixed(decimalNumber)); } else if (fn === 'floor') { return formatDecimalNoRound(Number(newNumber), decimalNumber); } return num; } }