Unicode có một bộ ký tự cho phép bạn tạo các phân số mà không cần phải định dạng đặc biệt, ví dụ: ⁴⁄₉ hoặc ⁵⁶⁄₁₀₀.
Bạn có thể thiết lập một dãy các chữ số phụ, và một dãy các chữ số chỉ số, và chuyển đổi các số của bạn thành chuỗi các chữ số này, sau đó kết hợp chúng với dấu gạch chéo ở giữa.
Ưu điểm là tổng quát hơn (bạn có thể sử dụng mã trong các ngữ cảnh khác) và kết quả sẽ trông đẹp hơn nếu bạn cố gắng tạo lại nó bằng định dạng HTML. Tất nhiên, bạn cần phải có phông chữ Unicode trên hệ thống của bạn, nhưng hầu hết các hệ thống làm những ngày này.
Một thực thể trong mã:
public String diagonalFraction(int numerator, int denominator) {
char numeratorDigits[] = new char[]{
'\u2070','\u00B9','\u00B2','\u00B3','\u2074',
'\u2075','\u2076','\u2077','\u2078','\u2079'};
char denominatorDigits[] = new char[]{
'\u2080','\u2081','\u2082','\u2083','\u2084',
'\u2085','\u2086','\u2087','\u2088','\u2089'};
char fractionSlash = '\u2044';
String numeratorStr = new String();
while(numerator > 0){
numeratorStr = numeratorDigits[numerator % 10] + numeratorStr;
numerator = numerator/10;
}
String denominatorStr = new String();
while(denominator > 0){
denominatorStr = denominatorDigits[denominator % 10] + denominatorStr;
denominator = denominator/10;
}
return numeratorStr + fractionSlash + denominatorStr;
}
Nguồn
2011-10-12 12:21:39
Bạn có thể xây dựng trên những chi tiết bổ sung sẽ là hữu ích không? – trashgod
??? Tôi chắc chắn ???có thể đặt Định dạng thành JSpinner hoặc JFormattedTextField, vì tôi thấy Java GUI có số màu xanh dương và đậm hơn trước dấu phân tách thập phân, như màu đỏ và smaler trên một số thập phân khác, trông rất đẹp, giống như tôi đã hỏi trong câu hỏi – mKorbel
Ah, có lẽ là một thành phần tùy chỉnh được sử dụng trong giao dịch thị trường. Cảm ơn bạn đã làm rõ. Xin lỗi, tôi không có nhiều kinh nghiệm về vấn đề đó. – trashgod