import React from 'react' type CommonProps = { value: string | number | ''; format: string; } export default function TransValueFormat({value='', format=''}: CommonProps) { return ( format === 'yyyyMMdd' ? <>{value.toString().substring(0,4)+'-'+value.toString().substring(4,6)+'-'+value.toString().substring(6,8)} : format === 'number' ? <>{String(value ?? '').includes('.') ? String(value).split('.').map((part, index) => index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part ).join('.') : String(value ?? '').replace(/\B(?=(\d{3})+(?!\d))/g, ",")} : format === 'float1' ? <>{String(value ?? '').includes('.') ? String(value).split('.').map((part, index) => index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part ).join('.') : String(value ?? '').replace(/\B(?=(\d{3})+(?!\d))/g, ",")} : <>{value} ) } /** * 천,만 등의 단위 변경 && 반올림 및 소숫점 자리수 지정 * @param value * @param unitSize 단위 변경 1000 인 경우, 100,000 -> 100 으로 변경 * @param decimalPlaces 어느 자리수에서 반올림할지 지정 1이면 소수 두번째 자리에서 반올림 * @returns */ export const formatUsage = ( value: string | number, unitSize: number = 1, decimalPlaces: number = 0 ) => { if (value === null || value === undefined || value === "") return ""; const numeric = typeof value === "number" ? value : Number(String(value).replaceAll(",", "")); if (Number.isNaN(numeric)) { return String(value); } const scaledValue = numeric / unitSize; const roundedValue = Math.round(scaledValue * 10 ** decimalPlaces) / 10 ** decimalPlaces; return roundedValue.toLocaleString("ko-KR", { minimumFractionDigits: decimalPlaces, maximumFractionDigits: decimalPlaces, }); };