package ms.utils;
import java.text.DecimalFormat;
public class EnglishDecimalFormat {
private static final String[] majorNames = {
"",
" Thousand",
" Million",
" Billion",
" Trillion",
" Quadrillion",
" Quintillion"
};
private static final String[] tensNames = {
"",
" Ten",
" Twenty",
" Thirty",
" Fourty",
" Fifty",
" Sixty",
" Seventy",
" Eighty",
" Ninety"
};
private static final String[] numNames = {
"",
" One",
" Two",
" Three",
" Four",
" Five",
" Six",
" Seven",
" Eight",
" Nine",
" Ten",
" Eleven",
" Twelve",
" Thirteen",
" Fourteen",
" Fifteen",
" Sixteen",
" Seventeen",
" Eighteen",
" Nineteen"
};
private static String convertLessThanOneThousand(int number) {
String soFar;
if (number % 100 < 20){
soFar = numNames[number % 100];
number /= 100;
}
else {
soFar = numNames[number % 10];
number /= 10;
soFar = tensNames[number % 10] + soFar;
number /= 10;
}
if (number == 0) return soFar;
return numNames[number] + " Hundred" + soFar;
}
public static String convert(int number) {
/* special case */
if (number == 0) { return "zero"; }
String prefix = "";
if (number < 0) {
number = -number;
prefix = "negative";
}
String soFar = "";
int place = 0;
do {
int n = number % 1000;
if (n != 0){
String s = convertLessThanOneThousand(n);
soFar = s + majorNames[place] + soFar;
}
place++;
number /= 1000;
} while (number > 0);
return (prefix + soFar).trim();
}
public static String convert(double d){
String numStr=null;
int left= (int)Math.floor(d);
numStr=convert(left)+" Dinar";
int right=(int)Math.round(1000*(d-Math.floor(d)));
numStr =numStr+" and "+convert(right)+" Fils";
return numStr;
}
static public String customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
return output;
}
}
import java.text.DecimalFormat;
public class EnglishDecimalFormat {
private static final String[] majorNames = {
"",
" Thousand",
" Million",
" Billion",
" Trillion",
" Quadrillion",
" Quintillion"
};
private static final String[] tensNames = {
"",
" Ten",
" Twenty",
" Thirty",
" Fourty",
" Fifty",
" Sixty",
" Seventy",
" Eighty",
" Ninety"
};
private static final String[] numNames = {
"",
" One",
" Two",
" Three",
" Four",
" Five",
" Six",
" Seven",
" Eight",
" Nine",
" Ten",
" Eleven",
" Twelve",
" Thirteen",
" Fourteen",
" Fifteen",
" Sixteen",
" Seventeen",
" Eighteen",
" Nineteen"
};
private static String convertLessThanOneThousand(int number) {
String soFar;
if (number % 100 < 20){
soFar = numNames[number % 100];
number /= 100;
}
else {
soFar = numNames[number % 10];
number /= 10;
soFar = tensNames[number % 10] + soFar;
number /= 10;
}
if (number == 0) return soFar;
return numNames[number] + " Hundred" + soFar;
}
public static String convert(int number) {
/* special case */
if (number == 0) { return "zero"; }
String prefix = "";
if (number < 0) {
number = -number;
prefix = "negative";
}
String soFar = "";
int place = 0;
do {
int n = number % 1000;
if (n != 0){
String s = convertLessThanOneThousand(n);
soFar = s + majorNames[place] + soFar;
}
place++;
number /= 1000;
} while (number > 0);
return (prefix + soFar).trim();
}
public static String convert(double d){
String numStr=null;
int left= (int)Math.floor(d);
numStr=convert(left)+" Dinar";
int right=(int)Math.round(1000*(d-Math.floor(d)));
numStr =numStr+" and "+convert(right)+" Fils";
return numStr;
}
static public String customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
return output;
}
}
Comments
Post a Comment