在计算技术发展的某个阶段,中央处理单元显然需要硬件设备来处理浮点数。今天,所有计算机架构都可以有效地处理这些数字。当然,在编程语言中,您也不能没有相应的数据类型。Java 中有两种浮点数据类型:浮点型和双精度型。java浮关键字定义在内存中占据 32 位的实数。我们将在本文中讨论这些数字。
浮点数。实数如何存储在计算机中?
为了在计算机内存中存储实数,需要分配一定数量的位。实数存储为符号(加号或减号)、螳螂和指数。什么是尾数和指数最好用一个例子来解释。月球的近似质量是7 * 1022。这里7是螳螂,在22中是指数。当在屏幕上显示大数字或反之亦然时,您可以看到像7E22这样的条目。这是浮点数,这里的7是螳螂,22是10的指数或幂。这种表示法称为指数表示法。
java浮点关键字和爪哇双关键字
Java 中的浮点值(浮点数或实数)由以下类型表示浮和双.正是这些关键字用于存储小数点后某个符号的值。双是具有双精度的数字,尽可能接近给定值或作为计算结果获得的值。java岛双用于任何数学计算(平方根、正弦、余弦、..),以及所有需要一定精度的计算。浮数据类型用于不太精确的浮点类型。为了节省内存,很少使用它。下面我们有一个表格,其中包含有关浮动和双精度的主要信息,以及它们的差异。
所以浮keyword 表示一个数字,即在内存中占用 32 位或 4 个字节的单精度值。在某些处理器上,处理这些数字的速度更快,并且如前所述,与具有双精度的数字相比,它们占用的空间更少。但是,不可能用速度明确地说出来。假设一些现代处理器处理双精度数字的速度更快。
java浮点和双重声明
您可以声明一些类型双与其他类型的数字相同:但是,如果以这种方式表示浮点数,编译器将要求您将数字的类型更改为双精度。这是一个不正确的示例:
浮变量:运行此程序时会发生什么:事实是,使用浮点数是不可取的,这应该只是为了节省内存。Java中的所有实数小数都是
双默认情况下,该语言的语法也强调了这一点。如果确实要使用 float 类型,则需要使用以数字结尾的 f 显式指定它。 顺便说一句,浮点数和双精度数可以以指数形式编写。 如果您在“正常”表示中使用足够大的数字,Java将立即以指数形式显示它们。让我们举个例子:这个程序工作的结果在这里:
特殊浮点数和双精度数示例
Java语言中有三个特殊的浮点数,用于指示溢出和错误。它们分别是:
正无穷大是将正数除以 0 的结果。由常量表示Double.POSITIVE_INFINITY和Float.POSITIVE_INFINITY.
负无穷大是将负数除以 0 的结果。由Double.NEGATIVE_INFINITY和Float.NEGATIVE_INFINITY常数。
NaN(不是数字)表示 0/0 的计算或取负数的平方根。由常量表示双钠和浮子楠.
下面是使用这些特殊浮点数的示例:结果是:
双精度是否足够?
事实上,尽管精度为双精度双type,例如,在财务计算中使用浮点数不是最好的主意,因为舍入错误是不可接受的。因此,请尝试在屏幕上显示以下程序的输出。 您将获得以下结果:
假设结果将为 0.9 是合乎逻辑的。但是,此类错误非常常见,并且与数字的内部二进制表示有关。例如,我们不能将1/3的确切值表示为小数;当然,在二进制系统中也有类似的限制。如果任务需要消除舍入错误,Java 具有大十进制类为此。