首页 > 其他分享 >课后动手动脑

课后动手动脑

时间:2023-09-16 18:22:28浏览次数:32  
标签:动脑 BigDecimal double float 动手 课后 new out String

  对于Java的float和double类型,都存在精度损失的问题。
精度损失产生的原因在于Java的数据存储采用的都是2进制形式,二进制不能准确的表示1/10等分数,只能无限趋近。

public static void main(String[] args){
    float a = (float) 1.0;
    float b = (float) 0.965;
    double a1 = 1.0;
    double b1 = 0.965;
    BigDecimal a2 = new BigDecimal(a1);
    BigDecimal b2 = new BigDecimal(b1);
    BigDecimal a3 = new BigDecimal(new String("1.0"));
    BigDecimal b3 = new BigDecimal(new String("0.965"));
 
    System.out.println("float:"+(a-b));
    System.out.println("double:"+(a1-b1));
    System.out.println("BigDecimal use Double:"+a2.subtract(b2));
    System.out.println("BigDecimal use String:"+a3.subtract(b3));
}

运行结果如下:
float:0.035000026
double:0.03500000000000003
BigDecimal use Double:0.03500000000000003108624468950438313186168670654296875
BigDecimal use String:0.035

程序运行结果如下:

 

程序运行结果如下:

 

 

标签:动脑,BigDecimal,double,float,动手,课后,new,out,String
From: https://www.cnblogs.com/binglinll/p/17707076.html

相关文章

  • 《动手学深度学习 Pytorch版》 6.2 图像卷积
    importtorchfromtorchimportnnfromd2limporttorchasd2l6.2.1互相关计算X=torch.tensor([[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]])K=torch.tensor([[0.0,1.0],[2.0,3.0]])此处应为:012345678*0123=......
  • 课堂动手动脑问题
    Enum是一种类类型,他的对象的值智能是其所有列举项目中的一个。并且,各个枚举项的对象都是不相同的。定义static的value的范围更大,但在主函数中的value里输出近,所以输出结果为2输入输出反码补码原码在计算机中,原码、反码和补码是表示有符号整数的三种常见方式。在Java中,整数......
  • 动手动脑
    一、动手动脑1s==t输出false说明s和t分别引用了两个不同的枚举实例。s.getClass().isPrimitive():输出false说明枚举类型不是原始数据类型。s==u:输出true。这是因为u是通过Size.valueOf("SMALL")方法得到的,该方法返回与给定字符串名称匹配的枚举实例。for(Sizevalue:Size.values(......
  • 动手动脑问题3
    在Java中,每个数据类型的位数和表示的数值范围如下所示:byte(字节):8位,有符号整数类型,表示范围为-128到127。short(短整型):16位,有符号整数类型,表示范围为-32,768到32,767。int(整型):32位,有符号整数类型,表示范围为-2,147,483,648到2,147,483,647。long(长整型):64位,有符号整数类型,......
  • 动手动脑问题
    原码:最高位是符号位(0表示正数,1表示负数),其余位表示数值的绝对值。反码:正数的反码与原码相同,负数的反码是对其原码按位取反(符号位除外)得到的结果。补码:正数的补码与原码相同,负数的补码是对其原码按位取反(符号位除外),然后将结果加1。在Java中,整数默认使用补码表示。下面是......
  • 课后练习
    packagea1;publicclassTest{privatestaticinta=1;publicstaticvoidmain(String[]args){inta=2;System.out.println(a);}}'''Java变量遵循同名变量屏蔽原则publicstaticvoidmain(Stringargs[]){System.out.println("0.0......
  • 课后实验题
    1、JAVA的基本运行单位是类还是方法?  基本运行单位为类。 2、类由什么组成?(1)属性 (2)方法 (3)构造器 (4)块 (5)内部类 3、变量的类型,相互之间可以转换吗,浮点数?可以,但是在转换过程中可能会丢失精度或导致溢出。4、String是一个数据类型吗?    不是......
  • 课后动手实践
    EnumTest.java代码运行及其源码:packagePaperManagement;  publicclassEnumTest{ publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s==t);////是原始数据类型吗?Syst......
  • 课程动手动脑练习
    publicclassMain{privateenumMyEnum{ONE,TWO,THREE}publicstaticvoidmain(String[]args){for(MyEnumvalue:MyEnum.values()){System.out.println(value);}}}运行结果为,ONETWOTHREE结构:enum名称{数据......
  • 动手动脑
     枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。使用double类型的数值进行计算,其结果是不精确的 ......