Làm thế nào để số pad với dấu gạch dưới trong Java, thay vì số không bình thường?Làm cách nào để dán số bằng dấu gạch dưới trong Java?
Ví dụ tôi muốn
- 123,45 được formated để ___ 123,45 và
- 12345,67 được formated để _12345.67
- 0.12 được formated để _ __ _ __ .12
Tôi đã thử rất nhiều thứ và gần nhất tôi có là này (bằng cách sử dụng SYMBOLS.setZeroDigit ('_');):
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class Example {
public static void main(String[] args) {
DecimalFormatSymbols SYMBOLS = new DecimalFormatSymbols();
SYMBOLS.setDecimalSeparator('.');
SYMBOLS.setGroupingSeparator(',');
DecimalFormat OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);
System.out.println(OUTPUT_FORMAT.format(0.01));
// got 000,000.01
System.out.println(OUTPUT_FORMAT.format(0.12));
// got 000,000.12
System.out.println(OUTPUT_FORMAT.format(123456));
// got 123,456.00
System.out.println(OUTPUT_FORMAT.format(123456.78));
// got 123,456.78
System.out.println(OUTPUT_FORMAT.format(1234));
// got 001,234.00
System.out.println(OUTPUT_FORMAT.format(1234.56));
// got 001,234.56
SYMBOLS.setZeroDigit('_');
OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);
System.out.println(OUTPUT_FORMAT.format(0.01));
// expected ______._1 but got ___,___._`
System.out.println(OUTPUT_FORMAT.format(0.12));
// expected ______.12 but got ___,___.`a
System.out.println(OUTPUT_FORMAT.format(123456));
// expected 123,456.__ but got `ab,cde.__
System.out.println(OUTPUT_FORMAT.format(123456.78));
// expected 123,456.78 but got `ab,cde.fg
System.out.println(OUTPUT_FORMAT.format(1234));
// expected __1,234.00 or at least __1,234.__ but got __`,abc.__
System.out.println(OUTPUT_FORMAT.format(1234.56));
// expected __1,234.56 but got __`,abc.de
}
}
Vâng, không thực sự gần gũi nhưng một số sản phẩm nào nếu đúng formated (với dấu gạch trailing): _ __ ,_ __. __
Dù sao, đề xuất về cách nhận được hành vi mong muốn?
'DecimalFormatSymbols.setZeroDigit' được sử dụng để đặt ký tự đại diện cho số không ** và tất cả các chữ số khác theo sau **. 'sau' _' và đó là lý do tại sao bạn thấy '___, ___._' 'thay vì' ___, ___._ 1' Chỉnh sửa: định dạng không hoạt động nhưng bạn nhận được điểm tôi giả sử. –
vâng, tôi biết setZeroDigit hoạt động như thế nào nhưng tôi đã yêu cầu giải pháp để đạt được mong đợi – Belun