java实现数据四舍五入

  • 1.使用String.format("%.2f",num);

这种方法可以用float,double接收数据类型,可以四舍五入保留两位小数,但是小数点第二位是0的话会不显示。以下代码用到此方法的语句:

public class Main {
    public static void main(String[] args) {
        double x = 2.585;
        x = Double.parseDouble(String.format("%.2f",x));
        System.out.println(x);
    }
}
  • 2.使用DecimalFormat
    这种方法可以用float,double接收数据类型。有多重模式可以使用(UPDOWNHALF_UPHALF_DOWN)等等,HALF_UP可以四舍五入,如保留两位小数,小数点第二位是0的话会不显示,整数位有时候会不显示,可以把#号改成0整数位就会显示了。以下代码用到此方法的语句:
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class Main {
    public static void main(String[] args) {
        double x = 2.585;
        DecimalFormat df = new DecimalFormat("#.#"); //不省略0用:0.00
        df.setRoundingMode(RoundingMode.HALF_UP);
        String z = df.format(x);
        System.out.println(z);
    }
}

注意:此种方式只能四舍五入小数点后一位,两位以上,会默认使用HALF_EVEN模式,尾数是5时向偶数位舍入

  • 3.使用BigDecimal,这种方式可以弥补上面只能舍入一位小数的缺陷,看代码
import java.math.BigDecimal;
import java.math.RoundingMode;

public class Main {
    public static void main(String[] args) {
        double x = 2.5555555;
        BigDecimal bd = new BigDecimal(String.valueOf(x));
        String z = String.valueOf(bd.setScale(3, RoundingMode.HALF_UP));
        System.out.println(z);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容