首页 > java > base > > 正文

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

发布人:zhoulujun@live.cn    点击:

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了。