내 문제는 .. NumberFormat 클래스의 format 메서드를 사용하여 숫자를 통화 문자열 (예 : 10.23에서 10.23)으로 포맷하려고하면 값이 자동으로 반올림됩니다. 그리고 이것은 NumberFormat의 getCurrencyInstance() 메소드에 일본어/한국어 로케일을 전달할 때 특별히 발생합니다. 미국 로켈의 경우 문제가 없습니다.값 서식을 지정하는 동안 NumberFormat (Locale) .format() 메서드에 의한 자동 반올림을 피하는 방법은 무엇입니까?
NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.JAPAN);
BigDecimal bd = new BigDecimal(123.456);
String str = formatter.format(bd);
JOptionPane.showMessageDialog(null, str); // Output is coming ¥123 instead of ¥123.456
내가 뭔가를 누락되거나 비논리적 일을하고 있다면 나는 확실하지 않다 : 여기에 문제의 명확한 그림을 줄 것이다 조각이다. 그렇지 않다면이 반올림을 막을 수있는 방법이 있습니까? 도와주세요. 것 같다
미국과 EU는 달러와 유로 표준 두 자릿수를 사용하는 것과 같이 일본은 표준으로 0 자리를 사용합니다. 대부분의 사람들은 상점에 들어가거나 회계 보고서를보고 두 자리를 제외한 모든 것에 달러 (또는 유로)를 보게되면 혼란 스러울 것입니다. 10 센트의 센트로 판매되지만 너무 많은 것은 아닙니다. 유일한 다른 일반적인 사용법은 전체 달러를 표시하는 것입니다.이것은 예를 들어 미국 세금 신고서에서 할 수 있습니다. –
이것은 유용한 정보입니다. 감사. – Peeyush
+1. @ARC : 나의 대답은 수정을 알려주지 만,이 대답은 문제를 잘 설명합니다. – kosa