进制的表示和浮点数的精确计算

public class HeloJava{
public static void main(String[] args) {
int a=15;
int b=015;//八进制的数
int c=0x15;//十六进制的数
int d=0b1101;//二进制的数
System.out.println(a);//输出时会自动的转换为十进制的数
System.out.println(b);
System.out.println(c);
System.out.println(d);
}}

import java.math.*;//使用BigDecimal的数学包
public class HeloJava{
    public static void main(String[] args) {
        BigDecimal bd=BigDecimal.valueOf(1.0);
        bd=bd.subtract(BigDecimal.valueOf(0.1));
        bd=bd.subtract(BigDecimal.valueOf(0.1));
        bd=bd.subtract(BigDecimal.valueOf(0.1));
        bd=bd.subtract(BigDecimal.valueOf(0.1));
        bd=bd.subtract(BigDecimal.valueOf(0.1));
        System.out.println(bd);
        System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//一般的浮点数的计算都不是精确的
        BigDecimal bd1=BigDecimal.valueOf(0.1);
        BigDecimal bd2=BigDecimal.valueOf(1.0/10);
        System.out.println(bd1.equals(bd2));//BigDecimal的比较更为精确

        }
}
全部评论

相关推荐

10-29 15:38
门头沟学院 Java
榕城小榕树:难道你简历里写了配送路径优化算法?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务