Julia 数据类型

简介: Julia中的数据类型包括整数、浮点数和字面量。类型转换通过T(x)、convert(T,x)或x % T实现,其中错误转换会抛出InexactError。示例展示了Int8转换,显示了不同类型转换的行为,如舍入和模运算。例如,Int8(127)成功,而Int8(128)和浮点数转换可能失败。round(Int8, x)提供了一种带舍入的转换方式。

Julia 数据类型

在编程语言中,都有基本的数学运算和科学计算,它们常用的数据类型为整数和浮点数。
另外还有一个"字面量"的术语,字面量(literal)用于表达源代码中一个固定值的表示法(notation),整数、浮点数以及字符串等等都是字面量。

类型转换

类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 float 类型的值到一个简单的整型中,您需要把 float 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:

Julia 支持三种数值转换,它们在处理不精确转换上有所不同。
第一种:

T(x)

convert(T,x)
以上都会把 x 转换为 T 类型。

如果 T 是浮点类型,转换的结果就是最近的可表示值, 可能会是正负无穷大。
如果 T 为整数类型,当 x 不能由 T 类型表示时,会抛出 InexactError。

第二种:

x % T 也可以将整数 x 转换为整型 T,与 x 模 2^n 的结果一致,其中 n 是 T 的位数。

第三种:

舍入函数接收一个 T 类型的可选参数。比如,round(Int,x) 是 Int(round(x)) 的简写版。

实例
julia> Int8(127)
127

julia> Int8(128)
ERROR: InexactError: trunc(Int8, 128)
Stacktrace:
[...]

julia> Int8(127.0)
127

julia> Int8(3.14)
ERROR: InexactError: Int8(3.14)
Stacktrace:
[...]

julia> Int8(128.0)
ERROR: InexactError: Int8(128.0)
Stacktrace:
[...]

julia> 127 % Int8
127

julia> 128 % Int8
-128

julia> round(Int8,127.4)
127

julia> round(Int8,127.6)
ERROR: InexactError: trunc(Int8, 128.0)
Stacktrace:
[...]

相关文章
uniapp带参数跳转,新页面接收参数
uniapp带参数跳转,新页面接收参数
477 0
|
人工智能 API 知识图谱
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用不同模型和平台体验GraphRAG的过程。首先通过OpenAI的GPT-4O Mini模型对沈从文的《边城》进行了分析,展示了如何安装GraphRAG并配置参数,最终实现了对文本的有效查询。随后,文章探讨了在国内环境下使用SiliconCloud作为替代方案的可能性,以《三国演义》为例,演示了使用SiliconCloud模型进行相同操作的步骤。此外,还讨论了使用本地模型如Ollama和LM Studio的可能性,尽管受限于硬件条件未能实际运行。最后,提出了混合使用在线对话模型API与本地或在线嵌入模型的方法,并列举了一些能够使GraphRAG流程跑通的大模型。
593 10
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
|
机器学习/深度学习 数据采集 人工智能
揭开大模型幻觉之谜:深入剖析数据偏差与模型局限性如何联手制造假象,并提供代码实例助你洞悉真相
【10月更文挑战第2天】近年来,大规模预训练模型(大模型)在自然语言处理和计算机视觉等领域取得卓越成绩,但也存在“大模型幻觉”现象,即高准确率并不反映真实理解能力。这主要由数据偏差和模型局限性导致。通过平衡数据集和引入正则化技术可部分缓解该问题,但仍需学界和业界共同努力。
388 4
|
存储 安全 Ubuntu
Linux dump命令教程
绍了Linuxdump命令的功能,包括用于备份整个文件系统的全备份和增量备份,以及如何在不同Linux发行版中安装和使用dump命令。
511 16
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。
自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代码实例。
1089 1
|
安全 5G 网络安全
什么是 Wi-Fi 热点?
【8月更文挑战第24天】
3608 0
|
关系型数据库 MySQL OLAP
PolarDB +AnalyticDB Zero-ETL :免费同步数据到ADB,享受数据流通新体验
Zero-ETL是阿里云瑶池数据库提供的服务,旨在简化传统ETL流程的复杂性和成本,提高数据实时性。降低数据同步成本,允许用户快速在AnalyticDB中对PolarDB数据进行分析,降低了30%的数据接入成本,提升了60%的建仓效率。 Zero-ETL特性包括免费的PolarDB MySQL联邦分析和PolarDB-X元数据自动同步,提供一体化的事务处理和数据分析,并能整合多个数据源。用户只需简单配置即可实现数据同步和实时分析。
|
Shell Linux
Shell脚本循环读取文件中的每一行
Shell脚本循环读取文件中的每一行
445 0
手把手教你看懂51单片机原理图
手把手教你看懂51单片机原理图
1094 0
|
Java 索引
logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error
1181 0
logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error