2017-10-04 80 views
0

需要一個修改方案,以十進制值轉換爲字。我需要盧比位數(十進制)轉換成的話

成功

例1:輸入金額:20

答案:二十盧比只。

錯誤:

實施例2:輸入量:20.50

答案:二十盧比和五十派薩。

其實我能數轉換成詞。

我能不能爲十進制值轉換爲以上。

在此先感謝。

import java.text.NumberFormat; 
import java.util.Scanner; 

public class NumberToWordsConverter { 

public static final String[] units = { "", "One", "Two", "Three", "Four", 
"Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", 
"Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", 
"Eighteen", "Nineteen" }; 

public static final String[] tens = { 
     "",   // 0 
     "",  // 1 
     "Twenty", // 2 
     "Thirty", // 3 
     "Forty", // 4 
     "Fifty", // 5 
     "Sixty", // 6 
     "Seventy", // 7 
     "Eighty", // 8 
     "Ninety" // 9 
}; 

public static String convert(final int n) { 
    if (n < 0) { 
     return "Minus " + convert(-n); 
    } 

    if (n < 20) { 
     return units[n]; 
    } 

    if (n < 100) { 
     return tens[n/10] + ((n % 10 != 0) ? " " : "") + units[n % 10]; 
    } 

    if (n < 1000) { 
     return units[n/100] + " Hundred" + ((n % 100 != 0) ? " " : "") + convert(n % 100); 
    } 

    if (n < 100000) { 
     return convert(n/1000) + " Thousand" + ((n % 10000 != 0) ? " " : "") + convert(n % 1000); 
    } 

    if (n < 10000000) { 
     return convert(n/100000) + " Lakh" + ((n % 100000 != 0) ? " " : "") + convert(n % 100000); 
    } 

    return convert(n/10000000) + " Crore" + ((n % 10000000 != 0) ? " " : "") + convert(n % 10000000); 
} 

public static void main(final String[] args) { 

    int n; 
    Scanner s=new Scanner(System.in); 
    System.out.println("Enter a number to convert into word format"); 
    n =s.nextInt(); 
    System.out.println(NumberFormat.getInstance().format(n) + "='" + convert(n) + "'"); 

} 
} 
+1

嗯,首先,你不能,如果你希望能夠有小數... –

回答

0

嘗試http://www.rgagnon.com/javadetails/java-0426.html

只需更改代碼,以便「盧比」每個十進制值後的各整數和「派薩」後出現。

你可能會想編輯的代碼位,所以它的工作原理

+0

雖然它可以回答這個問題在這裏用'以您的貨幣int's金額,你應該總是後相關細節鏈接可能會過時。 –

0

您的INT更改爲String。爲了得到不同的單位,你可以用String#實體專利法條約,在要拆分這種情況下「」所以例如

String value = Scanner.next(); 
String[] values = value.split("."); 

現在值[0]是20和值[1]是50

如果你需要與你的問題的任何進一步的幫助,讓我知道,但我認爲這是足以導致你正確的方向!

+0

這將會是最好檢索輸入一個字符串,把它分解,每個轉換成'int',然後傳遞給'convert'。 – Mark

+0

編輯我的帖子,我同意。 – Dinh