Unicode有一組字符,可讓您在不必進行特殊格式化的情況下生成分數,例如4/8或5/5/100。
您可以設置上標數字和下標數字數組,並將您的數字轉換爲這些數字的字符串,然後將它們與中間的分數斜槓組合。
優點是它更通用(您可以在其他上下文中使用代碼),並且結果往往比您嘗試使用HTML格式重現它的效果更好。當然,你需要在你的系統上使用Unicode字體,但是現在大多數系統都是這樣做的。
在代碼中可能的實現:
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;
}
你能細說什麼更多的細節將是有益的? – trashgod
???我確定 ???必須可以將格式設置爲JSpinner或JFormattedTextField,因爲我看到Java GUI在小數點分隔符之前有更大的藍色和更大的數字,就像在另一個小數位上的紅色和小數點一樣,這看起來非常好,與我在我的問中一樣問題 – mKorbel
啊,也許是市場交易中使用的自定義組件。感謝澄清。對不起,我在這方面沒有太多經驗。 – trashgod