动手做实验

public class TestDouble {

    public static void main(String args[]) {

       System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));

        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));

  System.out.println("4.015 * 100 = " + (4.015 * 100));

       System.out.println("123.3 / 100 = " + (123.3 / 100));

    }

}

经过运行发现

 

 

 

发现小数点后数字非常多,不是题中的两位小数。其结果不精确。

 

 

 double类型的数值运算不精确的原因:

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

 

在构建BigDecimal对象时应使用字符串而不是double数值,否则,仍有可能引发计算精度问题。(为什么会这样呢?)

 

Integer.parseInt方法将 String 转为数字 ( int) 类Integer 属于包 java.lang,它“封装”了一个int类型的整数,因此,它是原始数据类型int的“包装类”。

JOptionPane.showMessageDialog(

null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE );

 

The sum is " + sum 使用运算符 + 连接字面量“The sum is” 和计算结果 sum将String 和其它数据类型相加,结果是一个新的String

 

 

 int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

运行结果为X+Y=100200

                  300=X+Y

 

 

Java中有两种类型的变量 引用类型的变量(Reference variables)

引用一个对象 (变量本身用于存放对象在内存中的位置,以看成是一个指针),故又被称为“对象变量”);

原始数据类型的变量,变量中仅包含数据。

String firstNumber;

String secondNumber;

double number1;

double number2;

如果变量的数据类型是一个类的名字,就是引用类型的变量,它将引用一个对象。

String 是个类(注意类名首字母大写) firstNumber, secondNumber将分别引用两个字符串对象。

如果数据类型是一个原始类型(其名称由小写字母组成),这种类型的变量将直接保存一个原始数据类型的值。

double 是一个原始数据类型 number1, number2变量将保存两个双精度数.

 

number1   =   Double.parseDouble(   firstNumber   );

number2   = Double.parseDouble(   secondNumber   );

Double.parseDouble是一个Double类所定义的静态方法

将 String 数据转为double类型的 返回 double类型的数值 记住静态方法调用语法:

类名.静态方法名( 参数 ) Double是原始数据类型double的“包装类”,属于引用类型

 

                  

posted @   周+⑦  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示