代码: double d = -123456789012345.3426;//5898895455898954895989; NumberFormat nf = new DecimalFormat("#0.###"); nf.setMinimumFractionDigits(3);// 小数点后不足的补零:小数点之后最多3位数字 String amt = nf.format(d);// 将double类型的数格式化并转换成字符串,实际上进行了四舍五入 System.out.printl…
Java中四舍五入保留两位小数 方法一 四舍五入 double f = 3.15; long res = Math.round(f); #结果 res = 3 保留两位小数 double f = 3.15; float res =(float) Math.round(f*100)/100; #结果 res = 3.15 注意: 这里用浮点类型,如果换成了整形long,那么就是缩小了数据类型,无法出现小数情况 方法二 double f = 111231.5585; BigDecimal b = n…
java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版本:poi-3.10.1poi-3.9 Code: package poi; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.i…
如果我们编译运行下面这个程序会看到什么? public class Test  {    public static void main(String args[]) {                System.out.println(0.05 + 0.01);        System.out.println(1.0 - 0.42);        System.out.println(4.015 * 100);        System.out.println(123.3 / 100…
Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个东西,必须采用某种方法,比如,简单点的,float四个字节,前两个字节表示整数位,后两个字节表示小数位(这就是一种规则标准),这样就组成一个浮点数.而Java中浮点数采用的是IEEE 754标准. IEEE 754 这里就不细说什么是IEEE 754了,就直接讲具体内容,有兴趣的可以自己百度. fl…
一.问题的提出: 如果我们编译运行下面这个程序会看到什么?public class Test{    public static void main(String args[]){        System.out.println(0.05+0.01);        System.out.println(1.0-0.42);        System.out.println(4.015*100);        System.out.println(123.3/100);    }};你没…
代码如下: Double d1 = 0.35; Double d2 = 0.1; System.out.println(d1+d2); 结果很不幸不是0.45,而是0.44999999999999996 如果对于精度没有限制,我们当突然可是四舍五入的去计算,但如果涉及到RMB的计算,我们就要谨慎了. 所以在java中,我们不能使用double类型来做浮点运算. 解决方案: 使用 BigDecimal b1 = new BigDecimal(Double.toString(d1)); BigDec…
package com.chauvet.utils; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; /*** * * 金额 * * 如果需要精确计算,必须用String来够造BigDecimal! !! * * Java里面的商业计算,不能用float和double,因为他们无法 进行精确计算. * 但是Java的设计者给编程人员提供了一个很有用的类BigDe…
Math类 package ch7; /** * Created by Jiqing on 2016/11/24. */ public class MathDemo { public static void main(String[] args) { /* 取整运算 */ // 返回小于目标数的最大整数 System.out.println("Math.floor(-1.2):"+Math.floor(-1.2)); // -2.0 // 返回大于目标数的最小整数 System.out…
1.Math中四舍五入的方法 Math.ceil(double a)向上舍入,将数值向上舍入为最为接近的整数,返回值是double类型 Math.floor(double a)向下舍入,将数值向下舍入为最为接近的整数,返回值是double类型 Math.round(float a)标准舍入,将数值四舍五入为最为接近的整数,返回值是int类型 Math.round(double a)标准舍入,将数值四舍五入为最为接近的整数,返回值是long类型 2.Math中random生成随机数 Math.ra…