对一个小数点后有多位数的实数,取两位小数而不四舍五入,有两种方案:
乘100再强转成int,再除以100就得到了想要的数
也可以写一个小工具,以便以后重复使用,代码如下:
/**
* a为一个带有未知位小数的实数
* 对其取b位小数
* @param a
* @param b
* @return
*/
static double getDouble(double a,int b){
int x=0;
int y=1;
for(int i=0;i y=y*10;
}
System.out.println(y);
x=(int)(a*y);
System.out.println("x="+x);
return (double)x/y;
}
public class t {
/**
* @param args
*/
public static void main(String[] args) {
System.out.print(GetNum("12.2345"));
}
public static String GetNum(String str)
{
//System.out.println(str.indexOf("."));
str=str.substring(0,str.indexOf("."))+str.substring(str.indexOf("."),str.indexOf(".")+3);
return str;
}
}
看看吧,这是最笨的方法。但通俗易懂。
乘以100, 取整, 在除以100
(double)((int)(1.98778*100/1))/100
NumberFormat formatter = new DecimalFormat("#0.00");
double money = 100550000.75;
formatter.format(money);