AnyMath 文档

数字

标准数值类型

所有子类型的类型树 电话号码基地 如下所示。 抽象类型已被标记,其余为具体类型。

Number  (Abstract Type)
├─ Complex
└─ Real  (Abstract Type)
   ├─ AbstractFloat  (Abstract Type)
   │  ├─ Float16
   │  ├─ Float32
   │  ├─ Float64
   │  └─ BigFloat
   ├─ Integer  (Abstract Type)
   │  ├─ Bool
   │  ├─ Signed  (Abstract Type)
   │  │  ├─ Int8
   │  │  ├─ Int16
   │  │  ├─ Int32
   │  │  ├─ Int64
   │  │  ├─ Int128
   │  │  └─ BigInt
   │  └─ Unsigned  (Abstract Type)
   │     ├─ UInt8
   │     ├─ UInt16
   │     ├─ UInt32
   │     ├─ UInt64
   │     └─ UInt128
   ├─ Rational
   └─ AbstractIrrational  (Abstract Type)
      └─ Irrational

抽象数字类型

Number

所有数字类型的抽象超类型。

Real <: Number

所有实数的抽象超类型。

AbstractFloat <: Real

所有浮点数的抽象超类型。

Integer <: Real

所有整数的抽象超类型(例如 签署, 未签名,和 布尔).

请参阅 伊辛特格, [医], 分区.

*例子*

julia> 42 isa Integer
true

julia> 1.0 isa Integer
false

julia> isinteger(1.0)
true
Signed <: Integer

所有有符号整数的抽象超类型。

Unsigned <: Integer

所有无符号整数的抽象超类型。

内置无符号整数以十六进制打印,带有前缀 0x,并且可以以相同的方式输入。

*例子*

julia> typemax(UInt8)
0xff

julia> Int(0x00d)
13

julia> unsigned(true)
0x0000000000000001
AbstractIrrational <: Real

数字类型表示一个精确的非理性值,它在与其他数字量的算术运算中自动舍入到正确的精度。

亚型 MyIrrational<:抽象的 应实施至少 ==(::MyIrrational,::MyIrrational), 哈希(x::MyIrrational,h::UInt),而 转换(::类型{F},x::MyIrrational)其中 {F <: Union{BigFloat,Float32,Float64}}.

如果子类型用于表示偶尔可能是合理的值(例如表示的平方根类型 √n 对于整数 n 会给出一个理性的结果时 n 是一个完美的正方形),那么它也应该实现 伊辛特格, 伊泽罗, 伊松,而 ==真实的 值(因为所有这些都默认为 错误抽象的,抽象的 类型),以及定义 哈希等于相应的 理性的.

混凝土编号类型

Float16 <: AbstractFloat <: Real

16位浮点数类型(IEEE754标准)。 二进制格式为1符号,5指数,10分数位。

Float32 <: AbstractFloat <: Real

32位浮点数类型(IEEE754标准)。 二进制格式为1符号,8指数,23分数位。

科学记数法的指数应以小写形式输入 f,因此 2f3===2.0f0&ast;10^3===Float32(2_000). 对于数组字面量和理解,可以在方括号之前指定元素类型: Float32[1,4,9]==Float32[i^2for i in1:3].

Float64 <: AbstractFloat <: Real

64位浮点数类型(IEEE754标准)。 二进制格式为1符号,11指数,52分数位。 见 比特串, n.信号,信号, 指数, 弗里智浦,和 n.意义,意义来访问各种位。

这是浮点文字的默认值, 1.0isa Float64,并为许多操作,如 1/2,2pi,log(2),范围(0,90,长度=4). 与整数不同,此默认值不会随 系统。字_大小.

科学记数法的指数可以输入为 eE,因此 2e3===2.0E3===2.0&ast;10^3. 这样做是强烈优先于 10^n 由于整数溢出,因此 2.0 &ast; 10^19 < 0 但是 2e19>0.

BigFloat <: AbstractFloat

任意精度浮点数类型。

Bool <: Integer

布尔类型,包含值 真的错误.

布尔 是一种数: 错误 在数值上等于 0真的 在数值上等于 1. 此外, 错误 作为一个乘法"强零"反对 资讯:

julia> [true, false] == [1, 0]
true

julia> 42.0 + true
43.0

julia> 0 .&ast; (NaN, Inf, -Inf)
(NaN, NaN, NaN)

julia> false .&ast; (NaN, Inf, -Inf)
(0.0, 0.0, -0.0)

如果和其他条件只接受 布尔. 朱莉娅没有"真实"的价值观。

比较通常返回 布尔,并且广播比较可能会返回 比特阵列而不是一个 数组{Bool}.

julia> [1 2 3 4 5] .< pi
1×5 BitMatrix:
 1  1  1  0  0

julia> map(>(pi), [1 2 3 4 5])
1×5 Matrix{Bool}:
 0  0  0  1  1

请参阅 特鲁斯, 虚假, ifelse.

Int8 <: Signed <: Integer

8位有符号整数类型。

表示数字 n∈-128:127. 请注意,这样的整数在没有警告的情况下溢出,因此 typemax(Int8)+Int8(1)<0.

请参阅 Int型, 加宽, 比金特.

UInt8 <: Unsigned <: Integer

8位无符号整数类型。

以十六进制打印,因此0x07==7。

Int16 <: Signed <: Integer

16位有符号整数类型。

表示数字 n∈-32768:32767. 请注意,这样的整数在没有警告的情况下溢出,因此 typemax(Int16)+Int16(1)<0.

请参阅 Int型, 加宽, 比金特.

UInt16 <: Unsigned <: Integer

16位无符号整数类型。

以十六进制打印,因此0x000f==15。

Int32 <: Signed <: Integer

32位有符号整数类型。

请注意,这样的整数在没有警告的情况下溢出,因此 typemax(Int32)+Int32(1)<0.

请参阅 Int型, 加宽, 比金特.

UInt32 <: Unsigned <: Integer

32位无符号整数类型。

以十六进制打印,因此0x0000001f==31。

Int64 <: Signed <: Integer

64位有符号整数类型。

请注意,这样的整数在没有警告的情况下溢出,因此 typemax(Int64)+Int64(1)<0.

请参阅 Int型, 加宽, 比金特.

UInt64 <: Unsigned <: Integer

64位无符号整数类型。

以十六进制打印,因此0x0000000000000003f==63。

Int128 <: Signed <: Integer

128位有符号整数类型。

请注意,这样的整数在没有警告的情况下溢出,因此 typemax(Int128)+Int128(1)<0.

请参阅 Int型, 加宽, 比金特.

UInt128 <: Unsigned <: Integer

128位无符号整数类型。

以十六进制打印,因此0x0000000000000000000000000000007f==127。

Int

系统。WORD_SIZE-bit有符号整数类型, Int<:Signed<:Integer<:Real.

这是大多数整数字面量的默认类型,并且是其中任何一个的别名 Int32Int64,取决于 系统。字_大小. 它是由函数返回的类型,例如 长度,以及索引数组的标准类型。

请注意,整数在没有警告的情况下溢出,因此 打字(Int)+1<010^19 < 0. 溢出可以通过使用避免 比金特. 非常大的整数文字将使用更宽的类型,例如 10_000_000_000_000_000_000isa int128.

整数除法为 分区别名 ÷,而 /作用于整数返回 漂浮64.

UInt

系统。WORD_SIZE-位无符号整数类型, UInt<:无符号<:整数.

Int型,别名 UInt的 可能指向任 UInt32UInt64,根据价值 系统。字_大小 定的计算机上。

以十六进制打印和解析: UInt(15)===0x000000000000000f.

BigInt <: Signed

任意精度整数类型。

Complex{T<:Real} <: Number

类型的实部和虚部的复数类型 T.

复杂的f16, 复杂的32复杂的f64 是别名 复杂{Float16}, 复杂{Float32}复杂{Float64} 分别。

请参阅: 真实的, 综合体, 真实的.

Rational{T<:Integer} <: Real

有理数类型,具有类型的分子和分母 T. 理进行溢出检查。

Irrational{sym} <: AbstractIrrational

数字类型表示由符号表示的精确非理性值 西姆,如 π, γ.

请参阅 抽象的,抽象的.

数据格式

digits([T<:Integer], n::Integer; base::T = 10, pad::Integer = 1)

返回元素类型的数组 T (默认 Int型)的数字 n 在给定的基础上,可选地用零填充到指定的大小。 更多的有效数字位于更高的指数,这样 n==sum(digits[k]&ast;base^(k-1)for k in1:length(digits)).

请参阅 n.尼吉特, 数字!,而对于基数2也 比特串, n.计数,计数.

*例子*

julia> digits(10)
2-element Vector{Int64}:
 0
 1

julia> digits(10, base = 2)
4-element Vector{Int64}:
 0
 1
 0
 1

julia> digits(-256, base = 10, pad = 5)
5-element Vector{Int64}:
 -6
 -5
 -2
  0
  0

julia> n = rand(-999:999);

julia> n == evalpoly(13, digits(n, base = 13))
true
digits!(array, n::Integer; base::Integer = 10)

填充一个由 n 在给定的基地。 更多的有效数字位于更高的指数。 如果数组长度不足,则最低有效数字将填充到数组长度。 如果数组长度过长,则用零填充多余部分。

*例子*

julia> digits!([2, 2, 2, 2], 10, base = 2)
4-element Vector{Int64}:
 0
 1
 0
 1

julia> digits!([2, 2, 2, 2, 2, 2], 10, base = 2)
6-element Vector{Int64}:
 0
 1
 0
 1
 0
 0
bitstring(n)

给出原始类型的字面位表示的字符串(按bigendian顺序,即最高有效位优先)。

*例子*

julia> bitstring(Int32(4))
"00000000000000000000000000000100"

julia> bitstring(2.2)
"0100000000000001100110011001100110011001100110011001100110011010"
parse(::Type{SimpleColor}, rgb::String)

的类似物 tryparse(SimpleColor,rgb::String) (见),这引发了一个错误,而不是返回 什么都没有.

parse(::Type{Platform}, triplet::AbstractString)

将一个字符串平台三元组解析回一个 平台 对象。

parse(type, str; base)

将字符串解析为数字。 为 整数 类型,可以指定一个base(默认为10)。 对于浮点类型,字符串被解析为十进制浮点数。 综合体 类型从形式的十进制字符串解析 "R±Iim" 作为一个 复杂(R,I) 所要求的类型; "我""j" 也可以用来代替 "我",而 "R""我" 也是允许的。 如果字符串不包含有效数字,则会引发错误。

兼容性

朱莉娅1.1 解析(Bool,str) 至少需要Julia1.1。

*例子*

julia> parse(Int, "1234")
1234

julia> parse(Int, "1234", base = 5)
194

julia> parse(Int, "afc", base = 16)
2812

julia> parse(Float64, "1.2e-3")
0.0012

julia> parse(Complex{Float64}, "3.2e-1 + 4.5im")
0.32 + 4.5im
tryparse(::Type{SimpleColor}, rgb::String)

尝试解析 rgb,rgb 作为一个 [医]单纯色. 如果 rgb,rgb 开始于 # 并具有7的长度,它被转换成一个 [医]研资局-支持 [医]单纯色. 如果 rgb,rgb 开始于 a-z, rgb,rgb 被解释为颜色名称并转换为 符号-支持 [医]单纯色.

否则的话, 什么都没有 被退回。

*例子*

julia> tryparse(SimpleColor, "blue")
SimpleColor(blue)

julia> tryparse(SimpleColor, "#9558b2")
SimpleColor(#9558b2)

julia> tryparse(SimpleColor, "#nocolor")
tryparse(type, str; base)

解析,解析,但返回请求类型的值,或 什么都没有如果字符串不包含有效数字。

big(x)

将数字转换为最大精度表示(通常 比金特大块头,大块头). 见 大块头,大块头有关浮点数的一些陷阱的信息。

signed(x)

将数字转换为有符号整数。 如果参数是无符号的,则将其重新解释为有符号,而不检查溢出。

signed(T::Integer)

将整数bitstype转换为相同大小的有符号类型。

*例子*

julia> signed(UInt16)
Int16
julia> signed(UInt64)
Int64
unsigned(T::Integer)

将整数bitstype转换为相同大小的无符号类型。

*例子*

julia> unsigned(Int16)
UInt16
julia> unsigned(UInt64)
UInt64
float(x)

将数字或数组转换为浮点数据类型。

*例子*

julia> float(1:1000)
1.0:1.0:1000.0

julia> float(typemax(Int32))
2.147483647e9
significand(x)

提取浮点数的有效数(a.k.a.尾数). 如果 x 是一个非零的有限数,那么结果将是一个相同类型和符号的数字 x,且其绝对值在区间上 . 否则的话 x 被退回。

请参阅 弗里智浦, 指数.

*例子*

julia> significand(15.2)
1.9

julia> significand(-15.2)
-1.9

julia> significand(-15.2) &ast; 2^3
-15.2

julia> significand(-Inf), significand(Inf), significand(NaN)
(-Inf, Inf, NaN)
exponent(x::Real) -> Int

返回最大整数 y 这样, 2^y≤abs(x). 对于归一化浮点数 x,这对应于指数 x.

抛出一个 N.域名,域名 何时 x 是零,无限,或 . 对于任何其他非非正规浮点数 x,这对应于指数位 x.

*例子*

julia> exponent(8)
3

julia> exponent(6.5)
2

julia> exponent(-1//4)
-2

julia> exponent(3.142e-4)
-12

julia> exponent(floatmin(Float32)), exponent(nextfloat(0.0f0))
(-126, -149)

julia> exponent(0.0)
ERROR: DomainError with 0.0:
Cannot be ±0.0.
[...]
complex(r, [i])

将实数或数组转换为复数。 i 默认值为零。

*例子*

julia> complex(7)
7 + 0im

julia> complex([1, 2, 3])
3-element Vector{Complex{Int64}}:
 1 + 0im
 2 + 0im
 3 + 0im
bswap(n)

反转字节顺序 n.

(另见 ntohhton在当前本机字节顺序和大端顺序之间进行转换。)

*例子*

julia> a = bswap(0x10203040)
0x40302010

julia> bswap(a)
0x10203040

julia> string(1, base = 2)
"1"

julia> string(bswap(1), base = 2)
"100000000000000000000000000000000000000000000000000000000"
hex2bytes(itr)

给定一个可迭代 itr 对于十六进制数字序列的ASCII码,返回一个 向量{UInt8} 对应于二进制表示的字节:每个连续的十六进制数字对 itr 给出返回向量中一个字节的值。

的长度 itr 必须是偶数,返回的数组长度为 itr. 请参阅 hex2bytes!对于就地版本,以及 字节2hex为逆。

兼容性

朱莉娅1.7呼叫 hex2bytes 随着迭代器的产生 UInt8 值需要Julia1.7或更高版本。 在早期版本中,您可以 收集资料 调用之前的迭代器 hex2bytes.

*例子*

julia> s = string(12345, base = 16)
"3039"

julia> hex2bytes(s)
2-element Vector{UInt8}:
 0x30
 0x39

julia> a = b"01abEF"
6-element Base.CodeUnits{UInt8, String}:
 0x30
 0x31
 0x61
 0x62
 0x45
 0x46

julia> hex2bytes(a)
3-element Vector{UInt8}:
 0x01
 0xab
 0xef
hex2bytes!(dest::AbstractVector{UInt8}, itr)

转换可迭代 itr 表示十六进制字符串到其二进制表示的字节,类似于 hex2bytes除了输出是就地写入到 德斯特. 的长度 德斯特 长度必须是 itr.

兼容性

朱莉娅1.7调用hex2bytes! 使用迭代器生成UInt8需要版本1.7。 在早期版本中,您可以在调用之前收集iterable。

bytes2hex(itr) -> String
bytes2hex(io::IO, itr)

转换迭代器 itr 字节到它的十六进制字符串表示形式,或者返回一个 字符串字节2hex(itr) 或者将字符串写入 伊俄 经流经 bytes2hex(io,itr). 十六进制字符均为小写。

兼容性

朱莉娅1.7呼叫 字节2hex 使用任意迭代器生成 UInt8 值需要Julia1.7或更高版本。 在早期版本中,您可以 收集资料 调用之前的迭代器 字节2hex.

*例子*

julia> a = string(12345, base = 16)
"3039"

julia> b = hex2bytes(a)
2-element Vector{UInt8}:
 0x30
 0x39

julia> bytes2hex(b)
"3039"

一般数函数和常量

one(x)
one(T::Type)

返回一个乘法身份 x:这样的值 一(x)*x==x*一(x)==x. 如果乘性身份可以从单独的类型推导出来,那么一个类型可以作为一个参数给出 一个 (例如 一(Int) 将工作,因为乘法身份是相同的所有实例 Int型,但是 一个(矩阵{Int}) 没有定义,因为不同形状的矩阵具有不同的乘法身份。)

如果可能的话, 一(x) 返回与以下类型相同的值 x,而 一(T) 返回类型的值 T. 但是,对于表示维度量的类型(例如以天为单位的时间),情况可能并非如此,因为乘法身份必须是无量纲的。 那样的话, 一(x) 应该返回一个相同精度(和形状,对于矩阵)的标识值 x.

如果你想要一个与…​…​类型相同的数量。 x,或类型 T,即使 x 是有尺寸的,使用 一个单位代替。

请参阅 身份认同功能,以及 线性代数为单位矩阵。

*例子*

julia> one(3.7)
1.0

julia> one(Int)
1

julia> import Dates; one(Dates.Day(1))
1
oneunit(x::T)
oneunit(T::Type)

回来吧 T(一(x)),在哪里 T 是参数的类型,或者是在 一个单位 可以单独从类型推导出来。 这与 一个对于尺寸数量: 一个 是无量纲的(一个乘法身份),而 一个单位 是维度的(与 x,或类型 T).

*例子*

julia> oneunit(3.7)
1.0

julia> import Dates; oneunit(Dates.Day)
1 day
zero(x)
zero(::Type)

获取additive identity元素 x. 如果加性标识可以单独从类型中推导出来,那么可以给出一个类型作为参数 .

例如, 零(Int) 将工作,因为添加剂标识是相同的所有实例 Int型,但是 零(矢量{Int}) 没有定义,因为不同长度的向量具有不同的加性身份。

*例子*

julia> zero(1)
0

julia> zero(big"2.0")
0.0

julia> zero(rand(2,2))
2×2 Matrix{Float64}:
 0.0  0.0
 0.0  0.0
im

的假想单元。

请参阅: 伊马格, 角度, 综合体.

*例子*

julia> im &ast; im
-1 + 0im

julia> (2.0 + 3im)^2
-5.0 + 12.0im
π
pi

的常数pi。

统一码 π 可以通过书写打字 \皮 然后在Julia REPL和许多编辑器中按tab键。

请参阅: 辛皮, 辛科斯皮, deg2rad.

*例子*

julia> pi
π = 3.1415926535897...

julia> 1/2pi
0.15915494309189535
ℯ
e

的常数△。

统一码 可以通过书写打字 \欧拉 并在Julia REPL和许多编辑器中按tab键。

请参阅: exp, 独联体, 西斯皮.

*例子*

julia> ℯ
ℯ = 2.7182818284590...

julia> log(ℯ)
1

julia> ℯ^(im)π ≈ -1
true
catalan

加泰罗尼亚语不变。

*例子*

julia> Base.MathConstants.catalan
catalan = 0.9159655941772...

julia> sum(log(x)/(1+x^2) for x in 1:0.01:10^6) &ast; 0.01
0.9159466120554123
γ
eulergamma

欧拉的常数。

*例子*

julia> Base.MathConstants.eulergamma
γ = 0.5772156649015...

julia> dx = 10^-6;

julia> sum(-exp(-x) &ast; log(x) for x in dx:dx:100) &ast; dx
0.5772078382499133
φ
golden

的黄金比例。

*例子*

julia> Base.MathConstants.golden
φ = 1.6180339887498...

julia> (2ans - 1)^2 ≈ 5
true
Inf, Inf64

类型的正无穷大 漂浮64.

*例子*

julia> π/0
Inf

julia> +1.0 / -0.0
-Inf

julia> ℯ^-Inf
0.0
Inf, Inf64

类型的正无穷大 漂浮64.

*例子*

julia> π/0
Inf

julia> +1.0 / -0.0
-Inf

julia> ℯ^-Inf
0.0
Inf32

类型的正无穷大 漂浮物32.

Inf16

类型的正无穷大 漂浮物16.

NaN, NaN64

类型的非数字值 漂浮64.

请参阅: 伊斯南, 失踪, 纳米32, 资讯.

*例子*

julia> 0/0
NaN

julia> Inf - Inf
NaN

julia> NaN == NaN, isequal(NaN, NaN), isnan(NaN)
(false, true, true)

注意始终使用 伊斯南等效;等效用于检查 . 使用 x===NaN 可能会给出意想不到的结果:

julia>重新解释(Uint32,NaN32)
0x7fc00000

julia>NaN32p1=重新解释(Float32,0x7fc00001)
纳米32

>NaN32p1===NaN32,isequal(NaN32p1,NaN32),isnan(NaN32p1)
(假,真,真)
NaN, NaN64

类型的非数字值 漂浮64.

请参阅: 伊斯南, 失踪, 纳米32, 资讯.

*例子*

julia> 0/0
NaN

julia> Inf - Inf
NaN

julia> NaN == NaN, isequal(NaN, NaN), isnan(NaN)
(false, true, true)

注意始终使用 伊斯南等效;等效用于检查 . 使用 x===NaN 可能会给出意想不到的结果:

julia>重新解释(Uint32,NaN32)
0x7fc00000

julia>NaN32p1=重新解释(Float32,0x7fc00001)
纳米32

>NaN32p1===NaN32,isequal(NaN32p1,NaN32),isnan(NaN32p1)
(假,真,真)
NaN32

类型的非数字值 漂浮物32.

请参阅: .

NaN16

类型的非数字值 漂浮物16.

请参阅: .

issubnormal(f) -> Bool

测试浮点数是否为非正规。

IEEE浮点数是https://en.wikipedia.org/wiki/Subnormal_number[subnormal]当其指数位为零且其有效位不为零时。

*例子*

julia> floatmin(Float32)
1.1754944f-38

julia> issubnormal(1.0f-37)
false

julia> issubnormal(1.0f-38)
true
isfinite(f) -> Bool

测试一个数字是否有限。

*例子*

julia> isfinite(5)
true

julia> isfinite(NaN32)
false
isinf(f) -> Bool

测试一个数字是否是无限的。

isnan(f) -> Bool

测试一个数字值是否是一个NaN,一个既不是无穷大也不是有限数("不是数字")的不确定值。

iszero(x)

回来吧 真的 如果 x==零(x);如果 x 是一个数组,它检查是否所有的元素 x 都为零。

*例子*

julia> iszero(0.0)
true

julia> iszero([1, 9, 0])
false

julia> iszero([false, 0, 0])
true
isone(x)

回来吧 真的 如果 x==一(x);如果 x 是一个数组,这检查是否 x 是单位矩阵。

*例子*

julia> isone(1.0)
true

julia> isone([1 0; 0 2])
false

julia> isone([1 0; 0 true])
true
nextfloat(x::AbstractFloat)

返回最小的浮点数 y 与…​…​ x 这样, x<y. 如果没有这样 y 存在(例如,如果 x资讯),然后返回 x.

请参阅: [医前浮], 每股收益, [医正常].

nextfloat(x::AbstractFloat, n::Integer)

的结果 n 的迭代应用 n.下一层,下一层x 如果 n>=0,或 -n 的应用 [医前浮]如果 n<0.

prevfloat(x::AbstractFloat)

返回最大的浮点数 y 与…​…​ x 这样, y<x. 如果没有这样 y 存在(例如,如果 x-Inf),然后返回 x.

prevfloat(x::AbstractFloat, n::Integer)

的结果 n 的迭代应用 [医]前浮x 如果 n>=0,或 -n 的应用 n.下一层,下一层如果 n<0.

isinteger(x) -> Bool

测试是否 x 在数值上等于某个整数。

*例子*

julia> isinteger(4.0)
true
isreal(x) -> Bool

测试是否 x 或者它的所有元素在数值上等于一些实数,包括无穷大和NaNs。 isreal(x) 如果是真的 等距(x,真实(x)) 是真的。

*例子*

julia> isreal(5.)
true

julia> isreal(1 - 3im)
false

julia> isreal(Inf + 0im)
true

julia> isreal([4.; complex(0,1)])
false
Float32(x [, mode::RoundingMode])

创建一个 漂浮物32x. 如果 x 那就不能完全代表了 模式 确定如何 x 是圆形的。

*例子*

julia> Float32(1/3, RoundDown)
0.3333333f0

julia> Float32(1/3, RoundUp)
0.33333334f0

圆模/圆模对于可用的舍入模式。

Float64(x [, mode::RoundingMode])

创建一个 漂浮64x. 如果 x 那就不能完全代表了 模式 确定如何 x 是圆形的。

*例子*

julia> Float64(pi, RoundDown)
3.141592653589793

julia> Float64(pi, RoundUp)
3.1415926535897936

圆模/圆模对于可用的舍入模式。

rounding(T)

获取类型的当前浮点舍入模式 T,控制基本算术函数的舍入(+, -, *, /sqrt,sqrt)和类型转换。

圆模/圆模可用模式。

setrounding(T, mode)

设置浮点类型的舍入模式 T,控制基本算术函数的舍入(+, -, *, /sqrt,sqrt)和类型转换。 使用默认值以外的舍入模式时,其他数值函数可能会给出不正确或无效的值 RoundNearest拢潞.

请注意,这是目前仅支持 T==BigFloat.

警告此函数不是线程安全的。 它将影响在所有线程上运行的代码,但如果与使用该设置的计算同时调用,则其行为未定义。

setrounding(f::Function, T, mode)

更改浮点类型的舍入模式 Tf. 它在逻辑上等同于:

old = rounding(T)
setrounding(T, mode)
f()
setrounding(T, old)

圆模/圆模对于可用的舍入模式。

get_zero_subnormals() -> Bool

回来吧 错误 如果对非正规浮点值("非正规值")的操作遵守IEEE算术规则,并且 真的 如果它们可能被转换为零。

警告此函数仅影响当前线程。

set_zero_subnormals(yes::Bool) -> Bool

如果 是的错误,随后的浮点运算遵循关于非正规值("非正规值")的IEEE算术规则。 否则,允许浮点运算(但不是必需的)将非正规输入或输出转换为零。 申报表 真的 除非 是==真 但硬件不支持非正规数的归零。 set_zero_subnormals(true) 可以加快一些硬件上的一些计算。 但是,它可以打破身份,例如 (x-y==0)==(x==y).

警告此函数仅影响当前线程。

整数

count_ones(x::Integer) -> Integer

二进制表示中的一个数 x.

*例子*

julia> count_ones(7)
3

julia> count_ones(Int32(-1))
32
count_zeros(x::Integer) -> Integer

二进制表示中的零个数 x.

*例子*

julia> count_zeros(Int32(2 ^ 16 - 1))
16

julia> count_zeros(-1)
0
leading_zeros(x::Integer) -> Integer

前导二进制表示的零个数 x.

*例子*

julia> leading_zeros(Int32(1))
31
leading_ones(x::Integer) -> Integer

领导二进制表示的数量 x.

*例子*

julia> leading_ones(UInt32(2 ^ 32 - 2))
31
trailing_zeros(x::Integer) -> Integer

二进制表示后面的零个数 x.

*例子*

julia> trailing_zeros(2)
1
trailing_ones(x::Integer) -> Integer

的二进制表示形式后面的一个数 x.

*例子*

julia> trailing_ones(3)
2
isodd(x::Number) -> Bool

回来吧 真的 如果 x 是奇数整数(即不能被2整除的整数),并且 错误 否则。

兼容性

朱莉娅1.7非-整数 参数需要Julia1.7或更高版本。

*例子*

julia> isodd(9)
true

julia> isodd(10)
false
iseven(x::Number) -> Bool

回来吧 真的 如果 x 是偶数整数(即可被2整除的整数),并且 错误 否则。

兼容性

朱莉娅1.7非-整数 参数需要Julia1.7或更高版本。

*例子*

julia> iseven(9)
false

julia> iseven(10)
true
@int128_str str

解析,解析 斯特拉 作为一个 Int128. 扔一个 [医]争论者 如果字符串不是有效的整数。

*例子*

julia> int128"123456789123"
123456789123

julia> int128"123456789123.4"
ERROR: LoadError: ArgumentError: invalid base 10 digit '.' in "123456789123.4"
[...]
@uint128_str str

解析,解析 斯特拉 作为一个 UInt128. 扔一个 [医]争论者 如果字符串不是有效的整数。

*例子*

julia> uint128"123456789123"
0x00000000000000000000001cbe991a83

julia> uint128"-123456789123"
ERROR: LoadError: ArgumentError: invalid base 10 digit '-' in "-123456789123"
[...]

大块头和大块头

[医大块头]和 比金特类型分别实现任意精度浮点和整数算术。 为 [医大块头]的https://www.mpfr.org/[GNU MPFR库]使用,并为 比金特[GNU多精度算术库(GMP)(https://gmplib.org)被使用。

BigFloat(x::Union{Real, AbstractString} [, rounding::RoundingMode=rounding(BigFloat)]; [precision::Integer=precision(BigFloat)])

从创建任意精度浮点数 x,精度 精密度. 该 四舍五入 参数指定如果转换不能准确完成,结果应该舍入的方向。 如果未提供,则由当前全局值设置。 BigFloat(X::真实) 是一样的 转换(BigFloat,x),除非 x 本身已经 [医]大块头,在这种情况下,它将返回一个精度设置为当前全局精度的值; 转换/转换 总会回来的 x. BigFloat(x::AbstractString) 是相同的 解析,解析. 这是为了方便起见,因为十进制文字被转换为 漂浮64 当解析,所以 大浮(2.1) 可能不会产生你所期望的。

请参阅:

兼容性

朱莉娅1.1 精密度 作为关键字参数至少需要Julia1.1。 在朱莉娅1.0 精密度 是第二个位置参数(大浮(x,精密)).

*例子*

julia> BigFloat(2.1) # 2.1 here is a Float64
2.100000000000000088817841970012523233890533447265625

julia> BigFloat("2.1") # the closest BigFloat to 2.1
2.099999999999999999999999999999999999999999999999999999999999999999999999999986

julia> BigFloat("2.1", RoundUp)
2.100000000000000000000000000000000000000000000000000000000000000000000000000021

julia> BigFloat("2.1", RoundUp, precision=128)
2.100000000000000000000000000000000000007
precision(num::AbstractFloat; base::Integer=2)
precision(T::Type; base::Integer=2)

获取浮点数的精度,如有效位数或浮点数类型的精度所定义 T (其当前默认值,如果 T 是一个变量精度类型,如 大块头,大块头).

如果 基地 被指定,然后它返回该基中的最大相应有效位数。

兼容性

朱莉娅1.8 基地 关键字至少需要Julia1.8。

setprecision(f::Function, [T=BigFloat,] precision::Integer; base=2)

更改 T 算术精度(在给定的 基地)的持续时间 f. 它在逻辑上等同于:

old = precision(BigFloat)
setprecision(BigFloat, precision)
f()
setprecision(BigFloat, old)

常用作 setprecision(T,precision)做... 结束

注意事项: 下一个(), 普雷弗洛特() 不要使用由 精确的,精确的.

警告此方法有一个回退实现,它调用 精密度精确的,精确的,但它不应该再依赖。 相反,您应该以使用以下方法直接定义3参数表单 Scoped值,scoped值,或建议来电者使用 Scoped值,scoped值@与 他们自己。

兼容性

朱莉娅1.8 基地 关键字至少需要Julia1.8。

setprecision([T=BigFloat,] precision::Int; base=2)

设置要用于的精度(默认情况下,以位为单位) T 算术。 如果 基地 被指定,那么精度是至少给出所需的最小值 精密度 给定的数字 基地.

警告此函数不是线程安全的。 它将影响在所有线程上运行的代码,但如果与使用该设置的计算同时调用,则其行为未定义。

兼容性

朱莉娅1.8 基地 关键字至少需要Julia1.8。

BigInt(x)

创建任意精度整数。 x 可能是一个 Int型 (或任何可以转换为 Int型). 通常的数学运算符是为这种类型定义的,结果被提升为 比金特.

实例可以通过以下方式从字符串构造 解析,解析,或使用 字符串字面量。

*例子*

julia> parse(BigInt, "42")
42

julia> big"313"
313

julia> BigInt(10)^19
10000000000000000000
@big_str str

将字符串解析为 比金特[医大块头],并抛出一个 [医]争论者 如果字符串不是有效数字。 对于整数 _ 允许在字符串中作为分隔符。

*例子*

julia> big"123_456"
123456

julia> big"7891.5"
7891.5

julia> big"_"
ERROR: ArgumentError: invalid number format _ for BigInt or BigFloat
[...]

使用警告 @big_str 用于建造 [医大块头]值可能不会导致可能天真地预期的行为:作为宏, @big_str 服从全局精度(精确的,精确的)和舍入模式(定界,定界)设置,因为它们是在_load time_。 因此,像 ()->精度(大"0.3") 返回一个常量,其值取决于定义函数时精度的值,而不是调用函数时精度的值。