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

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的比较更为精确

        }
}
全部评论

相关推荐

点赞 评论 收藏
分享
牛客722552937号:新锐之星有点坑爹,特别是对男的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务