gpt 정리

문자를 소수점 표시

Y_Notepad 2024. 2. 9. 14:12

질문 : String val = '1111.22333';
DecimalFormat df = new DecimalFormat("#,###,###,##0.00");
df.format(Long.parseLong(val));

이 java 소스를 js로 바꾸면?

주어진 Java 소스 코드를 JavaScript로 변환하면 아래와 같습니다:


javascript
const val = '1111.22333'; const formattedValue = new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(parseFloat(val)); console.log(formattedValue);

위의 코드에서 사용된 내용을 설명하겠습니다:


  1. const val = '1111.22333';: 문자열 val'1111.22333'을 할당합니다.


  2. const formattedValue = new Intl.NumberFormat('en-US', { ... }).format(parseFloat(val));: Intl.NumberFormat 객체를 사용하여 숫자 포맷팅을 수행합니다. 'en-US'는 미국 로캘을 나타냅니다. 포맷팅 옵션은 객체 안에 minimumFractionDigitsmaximumFractionDigits를 설정하여 소수점 이하 둘째 자리까지 표시되도록 합니다. parseFloat(val)로 문자열을 숫자로 변환한 후 format() 메서드를 사용하여 숫자를 포맷합니다.


  3. console.log(formattedValue);: 포맷된 숫자를 콘솔에 출력합니다.


이렇게 JavaScript 코드로 변환하여 사용할 수 있습니다. 위의 코드는 Intl.NumberFormat 객체를 활용하여 Java의 DecimalFormat과 유사한 포맷팅을 수행하는 방식입니다.


질문 : Intl.NumberFormat 을 안쓰고는?


Intl.NumberFormat을 사용하지 않고도 주어진 숫자를 세 자릿수마다 쉼표로 구분하고 소수점 이하 둘째 자리까지 나타내는 JavaScript 소스 코드는 다음과 같습니다:


위의 코드에서 사용된 formatNumber() 함수는 다음과 같은 작업을 수행합니다:


javascript
function formatNumber(number) { const parts = number.toFixed(2).split('.'); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); return parts.join('.'); } const number = 1111.22333; const formattedNumber = formatNumber(number); console.log(formattedNumber);

  1. number.toFixed(2)를 사용하여 숫자를 소수점 이하 둘째 자리까지 나타내는 문자열로 변환합니다.
  2. split('.')을 사용하여 정수부분과 소수부분으로 문자열을 분할합니다.
  3. 정수부분에 정규식 \B(?=(\d{3})+(?!\d))을 사용하여 세 자릿수마다 쉼표로 구분하여 포맷합니다.
  4. 최종적으로 분할된 부분을 합쳐서 포맷팅된 문자열을 반환합니다.

이를 통해 1111.223331,111.22로 포맷될 것입니다. 이 코드는 Intl.NumberFormat를 사용하지 않고도 동일한 결과를 얻을 수 있는 방법 중 하나입니다.


'gpt 정리' 카테고리의 다른 글

Math.ceil()  (0) 2024.02.12
타입 강제 변환  (0) 2024.02.12
Array 선언 정리  (0) 2024.02.09
replaceAll()  (0) 2024.02.09
vue 에서 focus out 하는 방법  (0) 2024.02.09