これは質問です:ユーザーがプログラムがバック何千もの正しい大きさを述べるユーザーに読まれます金額を入力することができるように(小数点を含む)の言葉で金額を印刷
はプログラムを書きます、何百、そしてセント。例えば
:
入力:R123.99
出力:百と23ランズ九十9セント。
入力量が常にrandsであり、入力量がxの場合、10000> x> = 0と仮定します。
これはこれまでのところ私のコードです:
import javax.swing.*;
import java.util.*;
public class switchEnhanced
{
public static void main(String[] args){
boolean corrInput = true;
String strInput = "";
String num1 = ""; //0 to 19
String num2 = ""; //10s to 90s
String num3 = ""; //100s to 900s
String num4 = ""; //1000s to 10 000s
String num5 = ""; //cents 0-9
String num6 = ""; //cents 10-90s
int intNum = 0;
int rands = Integer.parseInt(strInput.split("\\.")[0]);
int cents = Integer.parseInt(strInput.split("\\.")[1]);
while (corrInput){
try{
strInput = JOptionPane.showInputDialog("Type in an amount : ");
if (intNum>=0 && intNum <=9999){
corrInput = false;
}
}
catch(NumberFormatException ex)
{
System.out.println(strInput);
corrInput = true;
}
}
switch(intNum % 10){
case 0: num1 = "Zero";break;
case 1: num1 = "One";break;
case 2: num1 = "Two";break;
case 3: num1 = "Three";break;
case 4: num1 = "Four";break;
case 5: num1 = "Five";break;
case 6: num1 = "Six";break;
case 7: num1 = "Seven";break;
case 8: num1 = "Eight";break;
case 9: num1 = "Nine";break;
default: break;
}
switch(intNum){
case 10: num1 = "Ten";break;
case 11: num1 = "Eleven";break;
case 12: num1 = "Twelve";break;
case 13: num1 = "Thriteen";break;
case 14: num1 = "Fourteen";break;
case 15: num1 = "Fifteen";break;
case 16: num1 = "Sixteen";break;
case 17: num1 = "Seventeen";break;
case 18: num1 = "Eighteen";break;
case 19: num1 = "Nineteen";break;
default: break;
}
switch (intNum/10){
case 2: num2 = "Twenty";break;
case 3: num2 = "Thirty";break;
case 4: num2 = "Fourty";break;
case 5: num2 = "Fifty";break;
case 6: num2 = "Sixty";break;
case 7: num2 = "Seventy";break;
case 8: num2 = "Eighty";break;
case 9: num2 = "Ninety";break;
default: break;
}
switch (intNum/100){
case 1: num3 = "One Hundred";break;
case 2: num3 = "Two Hundred";break;
case 3: num3 = "Three Hundred";break;
case 4: num3 = "Four Hundred";break;
case 5: num3 = "Five Hundred";break;
case 6: num3 = "Six Hundred";break;
case 7: num3 = "Seven Hundred";break;
case 8: num3 = "Eight Hundred";break;
case 9: num3 = "Nine Hundred";break;
default: break;
}
switch (intNum/1000){
case 1: num4 = "One Thousand";break;
case 2: num4 = "Two Thousand";break;
case 3: num4 = "Three Thousand";break;
case 4: num4 = "Four Thousand";break;
case 5: num4 = "Five Thousand";break;
case 6: num4 = "Six Thousand";break;
case 7: num4 = "Seven Thousand";break;
case 8: num4 = "Eight Thousand";break;
case 9: num4 = "Nine Thousand";break;
default: break;
}
switch(intNum % 10){
case 0: num5 = "Zero";break;
case 1: num5 = "One";break;
case 2: num5 = "Two";break;
case 3: num5 = "Three";break;
case 4: num5 = "Four";break;
case 5: num5 = "Five";break;
case 6: num5 = "Six";break;
case 7: num5 = "Seven";break;
case 8: num5 = "Eight";break;
case 9: num5 = "Nine";break;
default: break;
}
switch(intNum){
case 10: num5 = "Ten";break;
case 11: num5 = "Eleven";break;
case 12: num5 = "Twelve";break;
case 13: num5 = "Thriteen";break;
case 14: num5 = "Fourteen";break;
case 15: num5 = "Fifteen";break;
case 16: num5 = "Sixteen";break;
case 17: num5 = "Seventeen";break;
case 18: num5 = "Eighteen";break;
case 19: num5 = "Nineteen";break;
default: break;
}
switch (intNum/10){
case 2: num6 = "Twenty";break;
case 3: num6 = "Thirty";break;
case 4: num6 = "Fourty";break;
case 5: num6 = "Fifty";break;
case 6: num6 = "Sixty";break;
case 7: num6 = "Seventy";break;
case 8: num6 = "Eighty";break;
case 9: num6 = "Ninety";break;
default: break;
}
if(num2.length()== 0){
System.out.println(num1 + num6);
}
else if(num6.length()== 0){
System.out.println(num1 + num6);
}
else
{
System.out.println(num4 +" "+ num3 +" "+ num2 +" "+ num1 + "Rand" +" "+ num6 +" "+ num5 + "Cents");
}
return;
}
}
それは論理的なエラーを持っていますが、私は私の人生のためにカント小数をプリントアウトし、それを回避する、あなたはこれを欠けている
0以外のものには決して割り当てません –
IDEデバッガで一度に1行ずつコードをステップ実行しましたか?それが始まる場所です。 –
ブレークポイントの設定とコードのデバッグを検討してください。あなたは答えが早くそのように見つけるだろう –