今天作金额计算要用到某种特定数字表示:
查了查网上资料:
利用java类Numberformat格式化数据
//use Number Format 格式化数据
import java.text.*;
import java.util.*;
public class IntegerSample {
public static void main(String args[]) {
int amount = 54321;
NumberFormat myformat = NumberFormat.getInstance();//system format
System.out.println(myformat.format(amount));
NumberFormat usformat = NumberFormat.getIntegerInstance(Locale.US);//use format
System.out.println(usformat.format(amount));
NumberFormat germanformat = NumberFormat.getInstance(Locale.CHINA);//china format
System.out.println(germanformat.format(amount));
NumberFormat jaformat = NumberFormat.getInstance(Locale.JAPAN);//japan format
System.out.println(jaformat.format(amount));
}
}
//---------------------------------//
运行结果:
F:\2004-04-12>java IntegerSample
54,321
54,321
54,321
54,321
//可以用下列来得到该特定格式化数字
NumberFormat nf=NumberFormat.getInstance();
nf.setMaximumFractionDigits(2); //设置精度小数点后2位有效数字
System.out.println(nf.format(new Double(121*33.456)));
运行结果:
4,048.18
/**
* @描述:存入数据库
* @param s
* @return
*/
public Double getDouble(String str){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String s = str.substring(i, i + 1);
if (s.equals(",")){
sb.append("");
}else{
sb.append(s);
}
}
return Double.valueOf(sb.toString());
}
/**
* @描述:显示到页面
* @param d
* @return
*/
public String getString(double d){
NumberFormat fmt = NumberFormat.getInstance();
fmt.setMaximumFractionDigits(2); //设置数的小数部分的最大位数。
fmt.setMinimumFractionDigits(2); //设置数的小数部分允许的最小位数。
return fmt.format(d);
}
计算百分比:
DecimalFormat myformat = null;
myformat= (DecimalFormat)NumberFormat.getPercentInstance();
myformat.applyPattern("00%"); //0表示加的小数点,00表示两位小数点,你用00试一下你就知道效果