• home > java > base >

    java取两位小数的小坑!整除保留两位小数

    Author:[email protected] Date:

    java 10 1能出来正确结果 。1 10 怎么就为0呢? 11 0 5*100 等于多少?

    今天算商品价格的时候,尼玛,测试所!

    总价为0了……

    然后查看代码:DecimalFormat df = new DecimalFormat(\"#0.00\");


    data-price="cartinfo.totalAmount"><%=df.format(cartinfo.totalAmount/100.0)%></span></strong></a>

    是对的啊!!


    import com.pagoda.model.UserInfo;
    
    import java.text.DecimalFormat;
    
    public class Main {
    
        public static void main(String[] args){
            DecimalFormat df = new DecimalFormat("#0.00");
            System.out.println(df.format(1/100.0));
            System.out.print(1/100);
        }
    }


    blob.png


    然后想:

    这个java的菜鸟都知道啊: 1/10=0啊!!1/100 =0啊 1/10==0 为true啊



    因为整型数据会去除小数部分并向较小的数靠齐。
    例如 1.2 转化为整型即为1
    0.1转化为整型即为0
    10/100是两个整型相除,此时计算结果也会被转化为整型,因此其等于0.
    修改为10/100.0即可得到0.1了。



    转载本站文章《java取两位小数的小坑!整除保留两位小数》,
    请注明出处:https://www.zhoulujun.cn/html/java/javaBase/7762.html