做到某道题,最后要求是精确到小数点后某位。 一开始以为java中有相应的函数可以进行转化,后来发现居然没有,
有点懵。没办法只能自己想办法进行转换,自己一个乱搞结果居然搞出来了,有点小激动。
先贴代码:实例为精确到小数点后一位
/**
*
* @author luzi
*
*/
public class Demo {
public static void main(String args[]){
double a=11.22;
double b=(double)(Math.round(a*10))/10; //这里的(double)一定要有,不然没法强制转换成相应精确度的小数
System.out.println(b);
}
}
其实很简单,我们要精确到小数点后 1 位,可以先乘以 10,然后进行四舍五入取整,这个时候11.22*10=112.2,
再四舍五入得到112,再将它转化为double类型:112.0,此时再除以10 则结果为 11.2。
float类型跟double一样.
要求精确到小数点后n位就先乘以 10^n,转换后再除以 10^n 即可