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