Numbers
Standard Numeric Types
Base의 Number의 모든 하위 유형에 대한 유형 트리는 아래에 표시됩니다. 추상 유형은 표시되었으며, 나머지는 구체적인 유형입니다.
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)
└─ IrrationalAbstract number types
Core.Number — Type숫자모든 숫자 유형에 대한 추상 슈퍼타입입니다.
Core.Real — TypeReal <: Number모든 실수에 대한 추상 슈퍼타입입니다.
Core.AbstractFloat — TypeAbstractFloat <: Real모든 부동 소수점 수에 대한 추상 슈퍼타입입니다.
Core.Integer — TypeInteger <: Real모든 정수에 대한 추상 슈퍼타입(예: Signed, Unsigned, 및 Bool).
또한 isinteger, trunc, div를 참조하십시오.
예제
julia> 42 isa Integer
true
julia> 1.0 isa Integer
false
julia> isinteger(1.0)
trueCore.Signed — TypeSigned <: Integer모든 부호 있는 정수에 대한 추상 슈퍼타입입니다.
Core.Unsigned — TypeUnsigned <: Integer모든 부호 없는 정수에 대한 추상 슈퍼타입입니다.
내장된 부호 없는 정수는 16진수로 출력되며, 접두사 0x가 붙고 동일한 방식으로 입력할 수 있습니다.
예제
julia> typemax(UInt8)
0xff
julia> Int(0x00d)
13
julia> unsigned(true)
0x0000000000000001Base.AbstractIrrational — TypeAbstractIrrational <: Real정확한 무리수를 나타내는 숫자 유형으로, 다른 숫자 양과의 산술 연산에서 자동으로 올바른 정밀도로 반올림됩니다.
하위 유형 MyIrrational <: AbstractIrrational은 최소한 ==(::MyIrrational, ::MyIrrational), hash(x::MyIrrational, h::UInt), 및 convert(::Type{F}, x::MyIrrational) where {F <: Union{BigFloat,Float32,Float64}}를 구현해야 합니다.
하위 유형이 때때로 유리수를 나타내는 데 사용되는 경우(예: 정수 n에 대해 √n을 나타내는 제곱근 유형은 n이 완전 제곱일 때 유리한 결과를 제공합니다), isinteger, iszero, isone, 및 ==를 Real 값과 함께 구현해야 합니다(모두 AbstractIrrational 유형에 대해 기본적으로 false로 설정되므로), 그리고 hash를 해당하는 Rational과 같도록 정의해야 합니다.
Concrete number types
Core.Float16 — TypeFloat16 <: AbstractFloat <: Real16비트 부동 소수점 숫자 유형 (IEEE 754 표준). 이진 형식은 1 비트의 부호, 5 비트의 지수, 10 비트의 분수입니다.
Core.Float32 — TypeFloat32 <: AbstractFloat <: Real32비트 부동 소수점 숫자 유형(IEEE 754 표준). 이진 형식은 1 비트의 부호, 8 비트의 지수, 23 비트의 분수입니다.
과학적 표기법의 지수는 소문자 f로 입력해야 하므로 2f3 === 2.0f0 * 10^3 === Float32(2_000)입니다. 배열 리터럴 및 이해에서 요소 유형은 대괄호 앞에 지정할 수 있습니다: Float32[1,4,9] == Float32[i^2 for i in 1:3].
Core.Float64 — TypeFloat64 <: AbstractFloat <: Real64비트 부동 소수점 숫자 유형(IEEE 754 표준). 이진 형식은 1 비트의 부호, 11 비트의 지수, 52 비트의 분수로 구성됩니다. 다양한 비트에 접근하려면 bitstring, signbit, exponent, frexp, 및 significand를 참조하세요.
이는 부동 소수점 리터럴의 기본값이며, 1.0 isa Float64와 1/2, 2pi, log(2), range(0,90,length=4)와 같은 많은 연산에 사용됩니다. 정수와 달리 이 기본값은 Sys.WORD_SIZE에 따라 변경되지 않습니다.
과학적 표기법의 지수는 e 또는 E로 입력할 수 있으며, 따라서 2e3 === 2.0E3 === 2.0 * 10^3입니다. 이렇게 하는 것이 10^n보다 강력히 권장됩니다. 왜냐하면 정수가 오버플로우되기 때문입니다. 따라서 2.0 * 10^19 < 0이지만 2e19 > 0입니다.
Base.MPFR.BigFloat — TypeBigFloat <: AbstractFloat임의 정밀도 부동 소수점 숫자 유형.
Core.Bool — TypeBool <: Integer부울 타입, 값 true와 false를 포함합니다.
Bool은 일종의 숫자입니다: false는 수치적으로 0과 같고 true는 수치적으로 1과 같습니다. 게다가, false는 NaN 및 Inf에 대해 곱셈의 "강한 제로"로 작용합니다:
julia> [true, false] == [1, 0]
true
julia> 42.0 + true
43.0
julia> 0 .* (NaN, Inf, -Inf)
(NaN, NaN, NaN)
julia> false .* (NaN, Inf, -Inf)
(0.0, 0.0, -0.0)if 및 기타 조건문을 통해 분기할 때는 오직 Bool만 허용됩니다. Julia에는 "진리값"이 없습니다.
비교는 일반적으로 Bool을 반환하며, 브로드캐스트된 비교는 Array{Bool} 대신 BitArray를 반환할 수 있습니다.
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 1Core.Int8 — TypeInt8 <: Signed <: Integer8비트 부호 있는 정수 타입.
숫자 n ∈ -128:127을 나타냅니다. 이러한 정수는 경고 없이 오버플로우되므로, typemax(Int8) + Int8(1) < 0입니다.
Core.UInt8 — TypeUInt8 <: Unsigned <: Integer8비트 부호 없는 정수 타입.
16진수로 출력되며, 따라서 0x07 == 7입니다.
Core.Int16 — TypeInt16 <: Signed <: Integer16비트 부호 있는 정수 타입.
숫자 n ∈ -32768:32767을 나타냅니다. 이러한 정수는 경고 없이 오버플로우되므로 typemax(Int16) + Int16(1) < 0입니다.
Core.UInt16 — TypeUInt16 <: Unsigned <: Integer16비트 부호 없는 정수 유형.
16진수로 출력되며, 따라서 0x000f == 15입니다.
Core.Int32 — TypeInt32 <: Signed <: Integer32비트 부호 있는 정수 유형입니다.
이러한 정수는 경고 없이 오버플로우되므로 typemax(Int32) + Int32(1) < 0입니다.
Core.UInt32 — TypeUInt32 <: Unsigned <: Integer32비트 부호 없는 정수 타입.
16진수로 출력되며, 따라서 0x0000001f == 31.
Core.Int64 — TypeInt64 <: Signed <: Integer64비트 부호 있는 정수형.
이러한 정수는 경고 없이 오버플로우되므로 typemax(Int64) + Int64(1) < 0입니다.
Core.UInt64 — TypeUInt64 <: Unsigned <: Integer64비트 부호 없는 정수 유형.
16진수로 인쇄되며, 따라서 0x000000000000003f == 63입니다.
Core.Int128 — TypeInt128 <: Signed <: Integer128비트 부호 있는 정수 타입입니다.
이러한 정수는 경고 없이 오버플로우되므로 typemax(Int128) + Int128(1) < 0입니다.
Core.UInt128 — TypeUInt128 <: Unsigned <: Integer128비트 부호 없는 정수 유형.
16진수로 인쇄되며, 따라서 0x0000000000000000000000000000007f == 127입니다.
Core.Int — TypeIntSys.WORD_SIZE 비트 부호 있는 정수 타입, Int <: Signed <: Integer <: Real.
이는 대부분의 정수 리터럴의 기본 타입이며, Sys.WORD_SIZE에 따라 Int32 또는 Int64의 별칭입니다. 이는 length와 같은 함수가 반환하는 타입이며, 배열 인덱싱을 위한 표준 타입입니다.
정수는 경고 없이 오버플로우되므로, typemax(Int) + 1 < 0 및 10^19 < 0입니다. 오버플로우는 BigInt를 사용하여 피할 수 있습니다. 매우 큰 정수 리터럴은 더 넓은 타입을 사용하며, 예를 들어 10_000_000_000_000_000_000 isa Int128입니다.
Core.UInt — TypeUIntSys.WORD_SIZE 비트 부호 없는 정수 타입, UInt <: Unsigned <: Integer.
Int와 마찬가지로, 별칭 UInt는 주어진 컴퓨터의 Sys.WORD_SIZE 값에 따라 UInt32 또는 UInt64를 가리킬 수 있습니다.
16진수로 출력 및 파싱됨: UInt(15) === 0x000000000000000f.
Base.GMP.BigInt — TypeBigInt <: Signed임의 정밀도 정수 유형.
Base.Complex — TypeComplex{T<:Real} <: Number실수형 및 허수형 부분이 T 타입인 복소수 타입입니다.
ComplexF16, ComplexF32 및 ComplexF64는 각각 Complex{Float16}, Complex{Float32} 및 Complex{Float64}의 별칭입니다.
Base.Rational — TypeRational{T<:Integer} <: Real유리수 타입으로, 분자와 분모의 타입은 T입니다. 유리수는 오버플로우를 검사합니다.
Base.Irrational — TypeIrrational{sym} <: AbstractIrrational기호 sym으로 표시되는 정확한 무리수를 나타내는 숫자 유형으로, π, ℯ 및 γ와 같은 값을 포함합니다.
또한 AbstractIrrational을 참조하십시오.
Data Formats
Base.digits — Functiondigits([T<:Integer], n::Integer; base::T = 10, pad::Integer = 1)주어진 진수에서 n의 자릿수를 가진 요소 유형 T(기본값 Int)의 배열을 반환하며, 선택적으로 지정된 크기로 0으로 패딩할 수 있습니다. 더 중요한 자릿수는 더 높은 인덱스에 위치하며, 따라서 n == sum(digits[k]*base^(k-1) for k in eachindex(digits))입니다.
또한 ndigits, digits!, 그리고 진수 2의 경우 bitstring, count_ones를 참조하십시오.
예제
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))
trueBase.digits! — Functiondigits!(array, n::Integer; base::Integer = 10)주어진 진수에서 n의 자릿수를 배열에 채웁니다. 더 중요한 자릿수는 더 높은 인덱스에 위치합니다. 배열 길이가 부족하면 가장 덜 중요한 자릿수로 배열 길이까지 채워집니다. 배열 길이가 과도하면 초과 부분은 0으로 채워집니다.
예제
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
0Base.bitstring — Functionbitstring(n)원시 타입의 리터럴 비트 표현을 제공하는 문자열입니다.
또한 count_ones, count_zeros, digits를 참조하세요.
예제
julia> bitstring(Int32(4))
"00000000000000000000000000000100"
julia> bitstring(2.2)
"0100000000000001100110011001100110011001100110011001100110011010"Base.parse — Functionparse(::Type{SimpleColor}, rgb::String)tryparse(SimpleColor, rgb::String)의 유사체로, nothing을 반환하는 대신 오류를 발생시킵니다.
parse(::Type{Platform}, triplet::AbstractString)문자열 플랫폼 트리플렛을 다시 Platform 객체로 구문 분석합니다.
parse(type, str; base)문자열을 숫자로 파싱합니다. Integer 유형의 경우, 진수를 지정할 수 있습니다(기본값은 10입니다). 부동 소수점 유형의 경우, 문자열은 10진 부동 소수점 숫자로 파싱됩니다. Complex 유형은 "R±Iim" 형식의 10진 문자열에서 Complex(R,I)로 요청된 유형으로 파싱됩니다; "i" 또는 "j"를 "im" 대신 사용할 수 있으며, "R" 또는 "Iim"도 허용됩니다. 문자열에 유효한 숫자가 포함되어 있지 않으면 오류가 발생합니다.
parse(Bool, str)는 최소한 Julia 1.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.5imBase.tryparse — Functiontryparse(::Type{SimpleColor}, rgb::String)rgb를 SimpleColor로 파싱하려고 시도합니다. rgb가 #로 시작하고 길이가 7인 경우, RGBTuple 기반의 SimpleColor로 변환됩니다. rgb가 a-z로 시작하는 경우, rgb는 색상 이름으로 해석되어 Symbol 기반의 SimpleColor로 변환됩니다.
그렇지 않으면 nothing이 반환됩니다.
예제
julia> tryparse(SimpleColor, "blue")
SimpleColor(blue)
julia> tryparse(SimpleColor, "#9558b2")
SimpleColor(#9558b2)
julia> tryparse(SimpleColor, "#nocolor")Base.big — Functionbig(x)숫자를 최대 정밀도 표현으로 변환합니다 (일반적으로 BigInt 또는 BigFloat). 부동 소수점 숫자와 관련된 몇 가지 함정에 대한 정보는 BigFloat를 참조하십시오.
Base.signed — Functionsigned(T::Integer)정수 비트 유형을 동일한 크기의 부호 있는 유형으로 변환합니다.
예제
julia> signed(UInt16)
Int16
julia> signed(UInt64)
Int64signed(x)숫자를 부호 있는 정수로 변환합니다. 인수가 부호가 없는 경우, 오버플로우를 확인하지 않고 부호 있는 것으로 재해석됩니다.
Base.unsigned — Functionunsigned(T::Integer)정수 비트 유형을 동일한 크기의 부호 없는 유형으로 변환합니다.
예제
julia> unsigned(Int16)
UInt16
julia> unsigned(UInt64)
UInt64Base.float — Methodfloat(x)숫자 또는 배열을 부동 소수점 데이터 유형으로 변환합니다.
예제
julia> float(1:1000)
1.0:1.0:1000.0
julia> float(typemax(Int32))
2.147483647e9Base.Math.significand — Functionsignificand(x)부동 소수점 수의 유효 숫자(즉, 맨티사)를 추출합니다. 만약 x가 0이 아닌 유한한 수라면, 결과는 x와 같은 유형과 부호를 가지며 절대값이 $[1,2)$ 구간에 있는 수가 됩니다. 그렇지 않으면 x가 반환됩니다.
예제
julia> significand(15.2)
1.9
julia> significand(-15.2)
-1.9
julia> significand(-15.2) * 2^3
-15.2
julia> significand(-Inf), significand(Inf), significand(NaN)
(-Inf, Inf, NaN)Base.Math.exponent — Functionexponent(x::Real) -> Int절대값 abs(x)에 대해 2^y ≤ abs(x)를 만족하는 가장 큰 정수 y를 반환합니다.
x가 0, 무한대 또는 NaN일 때 DomainError를 발생시킵니다. 다른 비정상 부동 소수점 숫자 x에 대해서는, 이는 x의 지수 비트에 해당합니다.
또한 signbit, significand, frexp, issubnormal, log2, ldexp도 참조하세요.
예제
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.
[...]Base.complex — Methodcomplex(r, [i])실수 또는 배열을 복소수로 변환합니다. i는 기본값이 0입니다.
예제
julia> complex(7)
7 + 0im
julia> complex([1, 2, 3])
3-element Vector{Complex{Int64}}:
1 + 0im
2 + 0im
3 + 0imBase.bswap — Functionbswap(n)n의 바이트 순서를 반전시킵니다.
(현재 네이티브 바이트 순서와 빅 엔디안 순서 간의 변환을 위해 ntoh 및 hton를 참조하십시오.)
예제
julia> a = bswap(0x10203040)
0x40302010
julia> bswap(a)
0x10203040
julia> string(1, base = 2)
"1"
julia> string(bswap(1), base = 2)
"100000000000000000000000000000000000000000000000000000000"Base.hex2bytes — Functionhex2bytes(itr)주어진 ASCII 코드의 iterable itr는 16진수 숫자의 시퀀스를 나타내며, 이진 표현에 해당하는 Vector{UInt8}의 바이트를 반환합니다: itr의 각 연속적인 16진수 숫자 쌍은 반환 벡터의 하나의 바이트 값을 제공합니다.
itr의 길이는 짝수여야 하며, 반환된 배열은 itr의 길이의 절반을 가집니다. 또한 hex2bytes! 인플레이스 버전과 bytes2hex 역함수도 참조하십시오.
UInt8 값을 생성하는 반복자를 사용하여 hex2bytes를 호출하려면 Julia 1.7 이상이 필요합니다. 이전 버전에서는 hex2bytes를 호출하기 전에 반복자를 collect할 수 있습니다.
예제
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
0xefBase.hex2bytes! — Functionhex2bytes!(dest::AbstractVector{UInt8}, itr)16진수 문자열을 나타내는 바이트의 iterable itr을 이진 표현으로 변환합니다. hex2bytes와 유사하지만 출력이 dest에 제자리에서 작성됩니다. dest의 길이는 itr의 길이의 절반이어야 합니다.
UInt8을 생성하는 반복자를 사용하여 hex2bytes!를 호출하려면 버전 1.7이 필요합니다. 이전 버전에서는 호출하기 전에 iterable을 수집할 수 있습니다.
Base.bytes2hex — Functionbytes2hex(itr) -> String
bytes2hex(io::IO, itr)바이트의 반복자 itr를 16진수 문자열 표현으로 변환합니다. bytes2hex(itr)를 통해 String을 반환하거나 bytes2hex(io, itr)를 통해 문자열을 io 스트림에 씁니다. 16진수 문자는 모두 소문자입니다.
임의의 반복자가 UInt8 값을 생성하는 경우 bytes2hex를 호출하려면 Julia 1.7 이상이 필요합니다. 이전 버전에서는 bytes2hex를 호출하기 전에 반복자를 collect할 수 있습니다.
예제
julia> a = string(12345, base = 16)
"3039"
julia> b = hex2bytes(a)
2-element Vector{UInt8}:
0x30
0x39
julia> bytes2hex(b)
"3039"General Number Functions and Constants
Base.one — Functionone(x)
one(T::type)x에 대한 곱셈 항등원을 반환합니다: one(x)*x == x*one(x) == x가 성립하는 값입니다. 또는 one(T)는 타입 T를 받을 수 있으며, 이 경우 one은 타입 T의 모든 x에 대한 곱셈 항등원을 반환합니다.
가능한 경우, one(x)는 x와 동일한 타입의 값을 반환하고, one(T)는 타입 T의 값을 반환합니다. 그러나 이는 차원 있는 양을 나타내는 타입(예: 일 단위의 시간)에 대해서는 해당되지 않을 수 있습니다. 곱셈 항등원은 차원이 없는 값이어야 하기 때문입니다. 이 경우, one(x)는 x와 동일한 정밀도(및 행렬의 경우 형태)의 항등값을 반환해야 합니다.
x와 동일한 타입이거나 타입 T의 양을 원하더라도, x가 차원 있는 경우에는 대신 oneunit를 사용하세요.
또한 identity 함수와 I를 LinearAlgebra에서 항등 행렬로 참조하세요.
예제
julia> one(3.7)
1.0
julia> one(Int)
1
julia> import Dates; one(Dates.Day(1))
1Base.oneunit — Functiononeunit(x::T)
oneunit(T::Type)T(one(x))를 반환합니다. 여기서 T는 인수의 유형이거나(유형이 전달된 경우) 인수입니다. 이는 차원 있는 양에 대한 one와 다릅니다: one은 차원이 없는(곱셈 항등원) 반면 oneunit은 차원 있는(x와 동일한 유형이거나 유형 T의) 것입니다.
예시
julia> oneunit(3.7)
1.0
julia> import Dates; oneunit(Dates.Day)
1 dayBase.zero — Functionzero(x)
zero(::Type)x의 타입에 대한 덧셈 항등원 요소를 가져옵니다 (x는 타입 자체를 지정할 수도 있습니다).
또한 iszero, one, oneunit, oftype를 참조하세요.
예제
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.0Base.im — ConstantBase.MathConstants.pi — Constantπ
pi상수 pi.
유니코드 π는 Julia REPL에서 \pi를 입력한 후 탭을 눌러 입력할 수 있으며, 많은 편집기에서도 가능합니다.
예제
julia> pi
π = 3.1415926535897...
julia> 1/2pi
0.15915494309189535Base.MathConstants.ℯ — Constantℯ
e상수 ℯ.
유니코드 ℯ는 Julia REPL에서 \euler를 입력하고 탭을 눌러 입력할 수 있으며, 많은 편집기에서도 가능합니다.
예제
julia> ℯ
ℯ = 2.7182818284590...
julia> log(ℯ)
1
julia> ℯ^(im)π ≈ -1
trueBase.MathConstants.catalan — Constant카탈란 상수.
# 예제
jldoctest julia> Base.MathConstants.catalan catalan = 0.9159655941772...
julia> sum(log(x)/(1+x^2) for x in 1:0.01:10^6) * 0.01 0.9159466120554123 ```
Base.MathConstants.eulergamma — Constantγ
eulergamma오일러 상수.
예제
julia> Base.MathConstants.eulergamma
γ = 0.5772156649015...
julia> dx = 10^-6;
julia> sum(-exp(-x) * log(x) for x in dx:dx:100) * dx
0.5772078382499133Base.MathConstants.golden — Constantφ
황금비율황금비율.
예시
julia> Base.MathConstants.golden
φ = 1.6180339887498...
julia> (2ans - 1)^2 ≈ 5
trueBase.Inf — ConstantInf, Inf64타입 Float64의 양의 무한대입니다.
참고: isfinite, typemax, NaN, Inf32.
예제
julia> π/0
Inf
julia> +1.0 / -0.0
-Inf
julia> ℯ^-Inf
0.0Base.Inf64 — ConstantInf, Inf64타입 Float64의 양의 무한대입니다.
참고: isfinite, typemax, NaN, Inf32.
예제
julia> π/0
Inf
julia> +1.0 / -0.0
-Inf
julia> ℯ^-Inf
0.0Base.Inf32 — ConstantInf32타입 Float32의 양의 무한대입니다.
Base.Inf16 — ConstantInf16Float16 유형의 양의 무한대입니다.
Base.NaN — ConstantNaN, NaN64Float64 유형의 not-a-number 값입니다.
참고: isnan, missing, NaN32, Inf.
예제
julia> 0/0
NaN
julia> Inf - Inf
NaN
julia> NaN == NaN, isequal(NaN, NaN), isnan(NaN)
(false, true, true)Base.NaN64 — ConstantNaN, NaN64Float64 유형의 not-a-number 값입니다.
참고: isnan, missing, NaN32, Inf.
예제
julia> 0/0
NaN
julia> Inf - Inf
NaN
julia> NaN == NaN, isequal(NaN, NaN), isnan(NaN)
(false, true, true)Base.NaN32 — ConstantBase.NaN16 — ConstantBase.issubnormal — Functionissubnormal(f) -> Bool부동 소수점 숫자가 비정상(subnormal)인지 테스트합니다.
IEEE 부동 소수점 숫자는 지수 비트가 0이고 유효 숫자가 0이 아닐 때 비정상입니다.
예제
julia> floatmin(Float32)
1.1754944f-38
julia> issubnormal(1.0f-37)
false
julia> issubnormal(1.0f-38)
trueBase.isfinite — Functionisfinite(f) -> Bool숫자가 유한한지 테스트합니다.
예제
julia> isfinite(5)
true
julia> isfinite(NaN32)
falseBase.isinf — FunctionBase.isnan — Functionisnan(f) -> Bool숫자 값이 NaN인지 테스트합니다. NaN은 무한대도 아니고 유한한 숫자도 아닌 불확정 값입니다("숫자가 아님").
Base.iszero — Functioniszero(x)x == zero(x)이면 true를 반환합니다. x가 배열인 경우, 이는 x의 모든 요소가 0인지 확인합니다.
참고: isone, isinteger, isfinite, isnan.
예제
julia> iszero(0.0)
true
julia> iszero([1, 9, 0])
false
julia> iszero([false, 0, 0])
trueBase.isone — Functionisone(x)x가 one(x)와 같으면 true를 반환합니다. x가 배열인 경우, 이는 x가 항등 행렬인지 확인합니다.
예시
julia> isone(1.0)
true
julia> isone([1 0; 0 2])
false
julia> isone([1 0; 0 true])
trueBase.nextfloat — Functionnextfloat(x::AbstractFloat, n::Integer)n이 0 이상인 경우 x에 nextfloat을 n번 반복 적용한 결과, 또는 n이 0 미만인 경우 prevfloat을 -n번 적용한 결과입니다.
nextfloat(x::AbstractFloat)같은 유형의 가장 작은 부동 소수점 숫자 y를 반환합니다. 단, x < y를 만족해야 합니다. 만약 그러한 y가 존재하지 않는 경우(예: x가 Inf 또는 NaN인 경우), x를 반환합니다.
또한 참조: prevfloat, eps, issubnormal.
Base.prevfloat — Functionprevfloat(x::AbstractFloat, n::Integer)n이 0 이상인 경우 x에 prevfloat을 n번 반복 적용한 결과, 또는 n이 0 미만인 경우 nextfloat을 -n번 적용한 결과입니다.
prevfloat(x::AbstractFloat)입력된 x와 같은 타입의 가장 큰 부동 소수점 숫자 y를 반환합니다. 단, y < x를 만족해야 합니다. 만약 그러한 y가 존재하지 않는 경우(예: x가 -Inf 또는 NaN인 경우), x를 반환합니다.
Base.isinteger — Functionisinteger(x) -> Boolx가 어떤 정수와 수치적으로 같은지 테스트합니다.
예시
julia> isinteger(4.0)
trueBase.isreal — Functionisreal(x) -> Boolx 또는 x의 모든 요소가 무한대와 NaN을 포함하여 어떤 실수와 수치적으로 같은지 테스트합니다. isreal(x)는 isequal(x, real(x))가 true인 경우 true입니다.
예제
julia> isreal(5.)
true
julia> isreal(1 - 3im)
false
julia> isreal(Inf + 0im)
true
julia> isreal([4.; complex(0,1)])
falseCore.Float32 — MethodFloat32(x [, mode::RoundingMode])x로부터 Float32를 생성합니다. x가 정확하게 표현될 수 없는 경우 mode가 x가 어떻게 반올림되는지를 결정합니다.
예제
julia> Float32(1/3, RoundDown)
0.3333333f0
julia> Float32(1/3, RoundUp)
0.33333334f0사용 가능한 반올림 모드에 대해서는 RoundingMode를 참조하세요.
Core.Float64 — MethodFloat64(x [, mode::RoundingMode])x로부터 Float64를 생성합니다. x가 정확하게 표현될 수 없는 경우 mode가 x가 어떻게 반올림되는지를 결정합니다.
예제
julia> Float64(pi, RoundDown)
3.141592653589793
julia> Float64(pi, RoundUp)
3.1415926535897936사용 가능한 반올림 모드에 대한 내용은 RoundingMode를 참조하세요.
Base.Rounding.rounding — Functionrounding(T)타입 T에 대한 현재 부동 소수점 반올림 모드를 가져오며, 기본 산술 함수(+, -, *, / 및 sqrt)와 타입 변환의 반올림을 제어합니다.
사용 가능한 모드에 대한 내용은 RoundingMode를 참조하세요.
Base.Rounding.setrounding — Methodsetrounding(T, mode)부동 소수점 타입 T의 반올림 모드를 설정하여 기본 산술 함수(+, -, *, / 및 sqrt)와 타입 변환의 반올림을 제어합니다. 기본 RoundNearest 이외의 반올림 모드를 사용할 경우 다른 수치 함수가 잘못되거나 유효하지 않은 값을 반환할 수 있습니다.
현재 T == BigFloat에 대해서만 지원됩니다.
!!! 경고 이 함수는 스레드 안전하지 않습니다. 모든 스레드에서 실행되는 코드에 영향을 미치지만, 설정을 사용하는 계산과 동시에 호출될 경우 그 동작은 정의되지 않습니다.
Base.Rounding.setrounding — Methodsetrounding(f::Function, T, mode)함수 f의 실행 동안 부동 소수점 타입 T의 반올림 모드를 변경합니다. 이는 논리적으로 다음과 같습니다:
old = rounding(T)
setrounding(T, mode)
f()
setrounding(T, old)사용 가능한 반올림 모드는 RoundingMode를 참조하세요.
Base.Rounding.get_zero_subnormals — Functionget_zero_subnormals() -> Bool서브노말 부동 소수점 값("비정규화")에 대한 연산이 IEEE 산술 규칙을 준수하면 false를 반환하고, 0으로 변환될 수 있는 경우 true를 반환합니다.
!!! 경고 이 함수는 현재 스레드에만 영향을 미칩니다.
Base.Rounding.set_zero_subnormals — Functionset_zero_subnormals(yes::Bool) -> Boolyes가 false인 경우, 이후의 부동 소수점 연산은 비정상 값("denormals")에 대한 IEEE 산술 규칙을 따릅니다. 그렇지 않으면, 부동 소수점 연산은 비정상 입력 또는 출력을 0으로 변환하는 것이 허용되지만 필수는 아닙니다. true를 반환하지만 yes==true이고 하드웨어가 비정상 숫자의 0화를 지원하지 않는 경우는 제외입니다.
set_zero_subnormals(true)는 일부 하드웨어에서 일부 계산을 가속화할 수 있습니다. 그러나 (x-y==0) == (x==y)와 같은 항등식을 깨뜨릴 수 있습니다.
!!! 경고 이 함수는 현재 스레드에만 영향을 미칩니다.
Integers
Base.count_ones — Functioncount_ones(x::Integer) -> Integerx의 이진 표현에서 1의 개수.
예시
julia> count_ones(7)
3
julia> count_ones(Int32(-1))
32Base.count_zeros — Functioncount_zeros(x::Integer) -> Integerx의 이진 표현에서 0의 개수.
예시
julia> count_zeros(Int32(2 ^ 16 - 1))
16
julia> count_zeros(-1)
0Base.leading_zeros — Functionleading_zeros(x::Integer) -> Integerx의 이진 표현에서 앞에 오는 0의 개수입니다.
예시
julia> leading_zeros(Int32(1))
31Base.leading_ones — Functionleading_ones(x::Integer) -> Integerx의 이진 표현에서 앞에 있는 1의 개수입니다.
예시
julia> leading_ones(UInt32(2 ^ 32 - 2))
31Base.trailing_zeros — Functiontrailing_zeros(x::Integer) -> Integerx의 이진 표현에서 뒤따르는 0의 수입니다.
예제
julia> trailing_zeros(2)
1Base.trailing_ones — Functiontrailing_ones(x::Integer) -> Integerx의 이진 표현에서 뒤따르는 1의 수입니다.
예제
julia> trailing_ones(3)
2Base.isodd — Functionisodd(x::Number) -> Boolx가 홀수 정수(즉, 2로 나누어 떨어지지 않는 정수)인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
비-Integer 인수는 Julia 1.7 이상이 필요합니다.
예제
julia> isodd(9)
true
julia> isodd(10)
falseBase.iseven — Functioniseven(x::Number) -> Boolx가 짝수 정수(즉, 2로 나누어 떨어지는 정수)인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
비정수(Integer가 아닌) 인수는 Julia 1.7 이상이 필요합니다.
예제
julia> iseven(9)
false
julia> iseven(10)
trueCore.@int128_str — Macro@int128_str strstr를 Int128로 파싱합니다. 문자열이 유효한 정수가 아닐 경우 ArgumentError를 발생시킵니다.
예제
julia> int128"123456789123"
123456789123
julia> int128"123456789123.4"
ERROR: LoadError: ArgumentError: invalid base 10 digit '.' in "123456789123.4"
[...]Core.@uint128_str — Macro@uint128_str strstr를 UInt128로 파싱합니다. 문자열이 유효한 정수가 아닐 경우 ArgumentError를 발생시킵니다.
예제
julia> uint128"123456789123"
0x00000000000000000000001cbe991a83
julia> uint128"-123456789123"
ERROR: LoadError: ArgumentError: invalid base 10 digit '-' in "-123456789123"
[...]BigFloats and BigInts
BigFloat 및 BigInt 유형은 각각 임의 정밀도 부동 소수점 및 정수 산술을 구현합니다. 4d61726b646f776e2e436f64652822222c2022426967466c6f61742229_40726566의 경우 GNU MPFR library가 사용되며, 4d61726b646f776e2e436f64652822222c2022426967496e742229_40726566의 경우 GNU Multiple Precision Arithmetic Library (GMP)가 사용됩니다.
Base.MPFR.BigFloat — MethodBigFloat(x::Union{Real, AbstractString} [, rounding::RoundingMode=rounding(BigFloat)]; [precision::Integer=precision(BigFloat)])x로부터 임의의 정밀도 부동 소수점 숫자를 생성하며, 정밀도는 precision입니다. rounding 인자는 변환이 정확하게 수행될 수 없는 경우 결과가 반올림되는 방향을 지정합니다. 제공되지 않으면, 현재 전역 값에 의해 설정됩니다.
BigFloat(x::Real)은 convert(BigFloat,x)와 동일하지만, x가 이미 BigFloat인 경우 현재 전역 정밀도로 설정된 값을 반환합니다; convert는 항상 x를 반환합니다.
BigFloat(x::AbstractString)은 parse와 동일합니다. 이는 소수 리터럴이 파싱될 때 Float64로 변환되기 때문에 제공됩니다. 따라서 BigFloat(2.1)은 예상한 결과를 제공하지 않을 수 있습니다.
참고:
precision을 키워드 인자로 사용하는 것은 최소한 Julia 1.1이 필요합니다. Julia 1.0에서는 precision이 두 번째 위치 인자입니다 (BigFloat(x, precision)).
예제
julia> BigFloat(2.1) # 여기서 2.1은 Float64입니다.
2.100000000000000088817841970012523233890533447265625
julia> BigFloat("2.1") # 2.1에 가장 가까운 BigFloat
2.099999999999999999999999999999999999999999999999999999999999999999999999999986
julia> BigFloat("2.1", RoundUp)
2.100000000000000000000000000000000000000000000000000000000000000000000000000021
julia> BigFloat("2.1", RoundUp, precision=128)
2.100000000000000000000000000000000000007Base.precision — Functionprecision(num::AbstractFloat; base::Integer=2)
precision(T::Type; base::Integer=2)부동 소수점 숫자의 정밀도를 가져옵니다. 이는 유효 숫자의 비트 수로 정의되며, 부동 소수점 타입 T의 정밀도(만약 T가 BigFloat와 같은 가변 정밀도 타입이라면 현재 기본값)입니다.
base가 지정되면 해당 진수에서 최대 해당하는 유효 숫자 자릿수를 반환합니다.
base 키워드는 최소한 Julia 1.8이 필요합니다.
Base.MPFR.setprecision — Functionsetprecision([T=BigFloat,] precision::Int; base=2)T 산술에 사용될 정밀도(기본적으로 비트 단위)를 설정합니다. base가 지정되면, 정밀도는 주어진 base에서 최소한 precision 자릿수를 제공하는 데 필요한 최소값입니다.
!!! 경고 이 함수는 스레드 안전하지 않습니다. 모든 스레드에서 실행 중인 코드에 영향을 미치지만, 설정을 사용하는 계산과 동시에 호출되면 그 동작은 정의되지 않습니다.
!!! 호환성 "Julia 1.8" base 키워드는 최소한 Julia 1.8이 필요합니다.
setprecision(f::Function, [T=BigFloat,] precision::Integer; base=2)주어진 f의 기간 동안 T 산술 정밀도(주어진 base)를 변경합니다. 이는 논리적으로 다음과 같습니다:
old = precision(BigFloat)
setprecision(BigFloat, precision)
f()
setprecision(BigFloat, old)종종 setprecision(T, precision) do ... end와 같이 사용됩니다.
참고: nextfloat(), prevfloat()는 setprecision에서 언급한 정밀도를 사용하지 않습니다.
base 키워드는 최소한 Julia 1.8이 필요합니다.
Base.GMP.BigInt — MethodBigInt(x)임의 정밀 정수를 생성합니다. x는 Int(또는 Int로 변환할 수 있는 모든 것)일 수 있습니다. 이 유형에 대해 일반적인 수학 연산자가 정의되어 있으며, 결과는 BigInt로 승격됩니다.
인스턴스는 parse를 통해 문자열에서 구성하거나 big 문자열 리터럴을 사용하여 구성할 수 있습니다.
예제
julia> parse(BigInt, "42")
42
julia> big"313"
313
julia> BigInt(10)^19
10000000000000000000Core.@big_str — Macro@big_str str문자열을 BigInt 또는 BigFloat로 파싱하고, 문자열이 유효한 숫자가 아닐 경우 ArgumentError를 발생시킵니다. 정수의 경우 _는 문자열에서 구분자로 허용됩니다.
예제
julia> big"123_456"
123456
julia> big"7891.5"
7891.5
julia> big"_"
ERROR: ArgumentError: invalid number format _ for BigInt or BigFloat
[...]!!! 경고 BigFloat 값을 구성하기 위해 @big_str를 사용하는 것은 순수하게 예상되는 동작을 초래하지 않을 수 있습니다: 매크로인 @big_str는 로드 시점에 설정된 전역 정밀도 (setprecision) 및 반올림 모드 (setrounding) 설정을 따릅니다. 따라서 () -> precision(big"0.3")와 같은 함수는 함수가 정의될 때의 정밀도 값에 따라 달라지는 상수를 반환하며, 함수가 호출될 때의 정밀도에 따라 달라지지 않습니다.