我再次嘗試解決錯誤,但無法獲得正確的輸出我嘗試從文本字段中插入長整數值,但隨後字符串生成器正在讓我猜的問題。它的問題很嚴重,無法做出正確的糾正決定。前3個if語句執行時沒有錯誤,問題與if語句的其餘部分有關。將貨幣轉換爲長值的字
public static String numberToWord(final long num) {
// special case to simplify later on
if (num == 0) {
return "zero";
}
// constant number names for each category
// single digits
final String n_1_9[] = new String[]{"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
// unfortunate special cases for ten, eleven, twelve, and teens
final String n_10_19[] = new String[]{"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
// tens
final String n_20_90[] = new String[]{"", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
final String n_100 = "hundred";
final String n_1000 = "thousand";
final String n_100000 = "lakh";
final String n_10000000 = "crore";
// use StringBuilder for efficient modifications
StringBuilder numWord = new StringBuilder();
long n = num;
// append with selective recursion for all our cases
if (n >= 10000000) {
numWord.append(numberToWord(n/10000000));
numWord.append(' ');
numWord.append(n_10000000);
numWord.append(' ');
n %= 10000000;
}
if (n >= 100000) {
numWord.append(numberToWord(n/100000));
numWord.append(' ');
numWord.append(n_100000);
numWord.append(' ');
n %= 100000;
}
if (n >= 1000) {
numWord.append(numberToWord(n/1000));
numWord.append(' ');
numWord.append(n_1000);
numWord.append(' ');
n %= 1000;
}
if (n >= 100) {
numWord.append(n_1_9[n/100]);
numWord.append(' ');
numWord.append(n_100);
numWord.append(' ');
n %= 100;
}
if (n >= 20) {
numWord.append(n_20_90[(n/10) - 1]);
numWord.append(' ');
n %= 10;
}
if (n >= 10) {
numWord.append(n_10_19[n - 10]);
}
if (n < 10) {
numWord.append(n_1_9[n]);
}
return numWord.toString().trim();
}
private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jTextField2MouseClicked(java.awt.event.MouseEvent evt) {
if(evt.getSource()==jTextField2){
long jml = Long.parseLong(jTextField3.getText());
jTextField1.setText(numberToWord(jml));
}
}
有什麼確切的錯誤或問題? – Swapnil
它說需要int找到長 –
這是不兼容類型的問題。 – Swapnil