特殊的浮点值

简介: 在编程中,特殊浮点值包括正无穷(Inf)、负无穷(-Inf)和非数字(NaN),它们不对应实数轴上的点。这些值在浮点运算中扮演重要角色,例如1/Inf为0.0,而0/0则产生NaN。NaN不等于自身,比较操作如NaN与NaN的大小关系均返回false。可以使用typemin和typemax函数获取各种浮点类型的最小和最大值,如在Float16到Float64中,范围从负无穷到正无穷。

特殊的浮点值

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

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)

相关文章
特殊的浮点值
在浮点数标准中,定义了三种特殊值:正无穷(如`Inf16`, `Inf32`, `Inf64`),表示大于所有有限浮点数;负无穷(如 `-Inf16`, `-Inf32`, `-Inf`),表示小于所有有限浮点数;以及非数字`NaN`(如`NaN16`, `NaN32`, `NaN`),它与任何浮点数都不相等,包括自身。这些特殊值在进行算术运算时会表现出特定的行为,例如`1/0`会产生正无穷,而`0/0`则产生`NaN`。此外,通过`typemin`和`typemax`函数可以查询浮点类型的最小和最大值,分别是负无穷和正无穷。
浮点类型
Julia 支持 Float16, Float32, 和 Float64 浮点类型,分别对应半、单、双精度,以及16、32、64比特。复数和有理数基于这些构建。浮点字面量可写为1.0、1.、0.5等形式,或用E表示科学记数法,如1e10、2.5e-4,其中E代表指数。
|
1月前
|
监控 Kubernetes Go
全链路追踪 & 性能监控,GO 应用可观测全面升级
当前,大多数面向 Golang 应用的监控能力主要是通过 SDK 方式接入,需要开放人员手动进行埋点,会存在一定问题。对此,可观测 Go Agent 应运而生。本文介绍的阿里云可观测 Go Agent 方案,能通过无侵入的方式实现应用监控能力。
108313 22
|
2月前
|
弹性计算 运维 安全
飞速打造企业门面:高效构建企业门户网站的秘诀
本文介绍了企业门户网站的构建,强调了阿里云提供的高效构建企业门户网站解决方案。文章首先解释了门户网站的定义、作用、特点和优势,并分析了传统建站方式的成本,包括人力、时间、技术和维护成本。接着,重点讨论了阿里云的解决方案如何通过云计算和DevOps工具(如云效和ECS)降低这些成本,提供弹性、安全和自动化运维。文章指出,该解决方案支持一键部署和手动部署,但建议新用户使用一键部署以简化流程。最后,文章总结了阿里云方案的优点,即节省成本和提高效率,但也指出了文档在引导和流程清晰度上的改进空间。
86 7
|
1月前
|
SQL 存储 数据库
使用explain优化慢查询的业务场景分析
`EXPLAIN` SQL 命令用于分析查询执行计划,揭示数据库如何处理查询,包括索引使用、扫描方式等。通过分析 `EXPLAIN` 输出,可优化查询性能,例如检查全表扫描、索引利用等。案例展示了如何通过 `EXPLAIN` 优化订单和学生课程查询,通过添加索引、子查询过滤等方式减少处理行数,提高效率。
144 3
使用explain优化慢查询的业务场景分析
|
1月前
|
存储 前端开发 JavaScript
深入浅出React框架:构建高效组件化网页的实战指南
【7月更文挑战第9天】在当今快速发展的前端技术领域,React凭借其强大的组件化思想、高效的虚拟DOM以及丰富的生态系统,成为了构建动态用户界面的首选框架之一。本文将带你深入浅出地探索React的核心概念,并通过实战示例,展示如何利用React构建高效、可维护的组件化网页。
65 8
|
2月前
|
弹性计算 安全 Shell
阿里云ECS安全加固:从访问控制到数据保护的全方位策略
【6月更文挑战第29天】阿里云ECS安全聚焦访问控制、系统加固及数据保护。安全组限定IP和端口访问,密钥对增强SSH登录安全;定期更新补丁,使用防病毒工具;数据备份与加密确保数据安全。多维度策略保障业务安全。
79 15
|
1月前
|
开发框架 自然语言处理 Java
如何在Spring Boot中实现动态多语言支持
如何在Spring Boot中实现动态多语言支持
|
1月前
|
弹性计算 运维 Kubernetes
阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。
【7月更文挑战第3天】阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。ECS支持多种计费模式和先进架构,保证低延迟计算。混合云融合公有云灵活性与私有云安全,实现资源最优配置。通过VPC互通、应用迁移、数据同步实践,确保安全合规,助力企业数字化转型。阿里云服务展示技术实力,支持企业在混合云时代抓住机遇。
68 3
|
1月前
|
存储 JSON 安全
深入理解与实践:Token的使用及其在Web应用安全中的重要性
【7月更文挑战第3天】在现代Web应用程序中,Token作为一种关键的安全机制,扮演着维护用户会话安全、验证用户身份的重要角色。本文将深入探讨Token的基本概念、类型、工作原理,并通过实际代码示例展示如何在Web应用中实现Token的生成、验证及应用,以确保数据传输的安全性和用户认证的有效性。
111 1