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:
[...]

相关文章
|
13天前
|
机器学习/深度学习 分布式计算 C语言
Julia
Julia
30 0
|
8天前
|
存储
Julia 数据类型
Julia中的数据类型包括整数和浮点数,以及字面量如字符串。类型转换通过`T(x)`或`convert(T,x)`实现,其中T为目标类型。转换规则:浮点转整数可能得到最接近的值,整数转整数若超出范围则抛出`InexactError`。转换方式还有`x % T`(相当于取模)和舍入函数`round(Int,x)`。示例展示了不同类型转换的结果,包括成功和失败的情况。
|
5天前
|
存储 索引
Julia 数组
Julia中的数组是可变的、类型可异的数据集合,支持一维至多维。索引由整数表示,大小可变。通过方括号创建,元素间用逗号分隔。示例展示了创建不同类型的数组,包括指定类型的整数和字符串数组。例如:`[1,2,3]` 创建整数向量,`[1, "baidu", 2.5, pi]` 创建混合类型数组,`Int64[1,2,3]` 和 `String["Taobao","baidu","GOOGLE"]` 分别创建指定类型的整数和字符串数组。
|
13天前
Julia 元组
Julia 中的元组是不可变的有序元素集合,与数组用法相似但用小括号表示。创建元组如 `(5, 10, 15, 20, 25, 30)`,可以使用数组函数操作,如 `tupl[3:end]` 获取子元组。尝试修改元组元素会导致错误,如 `tupl2[2]=0` 会抛出 `MethodError`。
|
13天前
|
索引
Julia 数组基本函数
摘要: 了解 Julia 中的数组基本函数:eltype() 获取元素类型,length() 返回元素数量,ndims() 给出维数,size() 和 size(A,n) 用于获取维度大小,axes() 和 axes(A,n) 提供索引范围,eachindex() 用于遍历,stride() 和 strides() 描述元素间隔。
|
13天前
Julia 基本语法
Julia 的注释方式包括单行和多行。单行注释以 `#` 开始,如 `# 这是一行注释`。多行注释使用 `#=` 开始并以 `=#` 结束,示例:`#= 1、这是一行注释\n2、这是另外一行注释 =#`。`println("Hello World!")` 是打印语句。
|
13天前
|
并行计算 Linux iOS开发
Julia 教程
Julia,一款高性能的开源编程语言,专为科学计算设计,具备动态高级语言特性,速度快,无需解释器。支持多种平台,包括macOS、Windows和Linux等。其特点是小核心、丰富的类型语法、高性能、并行计算优化、C函数直接调用、Unicode支持及元编程工具。常用于数值计算。首个Julia程序示例为打印"Hello World!"。参考链接:[Julia官网](https://julialang.org/)和[Julia中文手册](https://docs.juliacn.com/latest/)。
|
13天前
|
存储
TS 自定义结构Long与number类型相互转换
TS 自定义结构Long与number类型相互转换
|
10月前
C#-数据类型(dynamic)
C#-数据类型(dynamic)
51 0
|
9月前
|
JavaScript
es6数据类型Symbol以及es6操作数组常用的方法
es6数据类型Symbol以及es6操作数组常用的方法
65 0

热门文章

最新文章