java中如何保留两位有效数字?请注意 不是保留两位小数。如1299保留成1.2E3

如题所述

从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。 两位有效数字,就是找到前三位数字,对第三位四舍五入。例
public class S{

public static Double format(double data,int scope){
//10的位数次方 如保留2位则 tempDouble=100
double tempDouble=Math.pow(10, scope);
//原始数据先乘tempDouble再转成整型,作用是去小数点
data=data*tempDouble;
int tempInt=(int) data;
//返回去小数之后再除tempDouble的结果
return tempInt/tempDouble;
}
public static void main(String[] args) {
System.out.println(format(12995));
}}追问

明显不对啊 你这还是对小数点后进行2位数保留的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-11
public class StringFormst2 {
    
    public static void main(String args[])throws IOException{
        double a=1.23456D;
        System.out.printf("%1.1e\r\n", a);
     
        a=12.3456D;
        System.out.printf("%1.1e\r\n", a);
     
        a=123456D;
        System.out.printf("%1.1e\r\n", a);
    }
}

不复杂,现成的,利用String.format方法

本回答被提问者采纳
第2个回答  2018-08-23
double d = 0.00367;
BigDecimal b = new BigDecimal(Double.toString(d),new MathContext(2,RoundingMode.DOWN));
System.out.println(b);// 输出为0.0037
第3个回答  2017-12-15
a -= Integer.valueOf(Integer.toString(a).substring(2));