特殊的浮点值

简介: 在浮点数标准中,定义了三种特殊值:正无穷(如`Inf16`, `Inf32`, `Inf64`),表示大于所有有限浮点数;负无穷(如 `-Inf16`, `-Inf32`, `-Inf`),表示小于所有有限浮点数;以及非数字`NaN`(如`NaN16`, `NaN32`, `NaN`),它与任何浮点数都不相等,包括自身。这些特殊值在进行算术运算时会表现出特定的行为,例如`1/0`会产生正无穷,而`0/0`则产生`NaN`。此外,通过`typemin`和`typemax`函数可以查询浮点类型的最小和最大值,分别是负无穷和正无穷。

特殊的浮点值

有三种特定的标准浮点值不和实数轴上任何一点对应:

Float16 Float32 Float64 名称 描述
Inf16 Inf32 Inf 正无穷 一个大于所有有限浮点数的数
-Inf16 -Inf32 -Inf 负无穷 一个小于所有有限浮点数的数
NaN16 NaN32 NaN 不是一个数 一个不和任何浮点值(包括自己)相等(==)的值
以下列举了一些浮点数的运算实例:

实例
julia> 1/Inf
0.0

julia> 1/0
Inf

julia> -5/0
-Inf

julia> 0.000001/0
Inf

julia> 0/0
NaN

julia> 500 + Inf
Inf

julia> 500 - Inf
-Inf

julia> Inf + Inf
Inf

julia> Inf - Inf
NaN

julia> Inf * Inf
Inf

julia> Inf / Inf
NaN

julia> 0 * Inf
NaN

julia> NaN == NaN
false

julia> NaN != NaN
true

julia> NaN < NaN
false

julia> NaN > NaN
false
我们还可以使用 typemin 和 typemax 函数:

实例
julia> (typemin(Float16),typemax(Float16))
(-Inf16, Inf16)

julia> (typemin(Float32),typemax(Float32))
(-Inf32, Inf32)

julia> (typemin(Float64),typemax(Float64))
(-Inf, Inf)

相关文章
|
17小时前
特殊的浮点值
特殊的浮点值
|
5月前
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
5月前
|
网络安全 开发工具 git
Git下载安装教程
【1月更文挑战第14天】Git下载安装教程
元组作为函数参数
元组作为函数参数
|
2月前
|
存储 SQL 数据库
数据库模式(Schema)
数据库模式(Schema)
溢出行为
在Julia中,当数值运算超出特定整数类型的表示范围时,会产生溢出并导致环绕行为,例如 `typemax(Int64) + 1` 的结果会绕回至 `typemin(Int64)`。这种模运算特性反映了现代计算机底层算术的实现方式。为了避免潜在错误,对于可能发生溢出的操作需明确检查边界,或采用`BigInt`类型进行任意精度运算以确保准确性。例如,计算`10^19`会出现溢出并给出错误结果,而使用`big(10)^19`则能正确计算得到`10000000000000000000`。
特殊的浮点值
在浮点数标准中,定义了三种特殊值:正无穷(如`Inf16`, `Inf32`, `Inf64`),表示大于所有有限浮点数;负无穷(如 `-Inf16`, `-Inf32`, `-Inf`),表示小于所有有限浮点数;以及非数字`NaN`(如`NaN16`, `NaN32`, `NaN`),它与任何浮点数都不相等,包括自身。这些特殊值在进行算术运算时会表现出特定的行为,例如`1/0`会产生正无穷,而`0/0`则产生`NaN`。此外,通过`typemin`和`typemax`函数可以查询浮点类型的最小和最大值,分别是负无穷和正无穷。
溢出行为
在Julia中,当数值运算超出特定整数类型的表示范围时,会产生溢出并导致环绕行为,例如 `typemax(Int64) + 1` 的结果会绕回至 `typemin(Int64)`。这种模运算特性反映了现代计算机底层算术的实现方式。为了避免潜在错误,对于可能发生溢出的操作需明确检查边界,或采用`BigInt`类型进行任意精度运算以确保准确性。例如,计算`10^19`会出现溢出并给出错误结果,而使用`big(10)^19`则能正确计算得到`10000000000000000000`。
|
2月前
|
开发者
溢出行为
在Julia中,当数值运算超出特定整数类型的表示范围时,会产生溢出并导致环绕行为,例如 `typemax(Int64) + 1` 的结果会绕回至 `typemin(Int64)`。这种模运算特性反映了现代计算机底层算术的实现方式。为了避免潜在的溢出问题,开发者需要对最大值边界进行显式检查或采用`BigInt`类型来进行任意精度运算,如`big(10)^19`。