zoukankan      html  css  js  c++  java
  • Julia

    浮点数类型:

    Float64 类型,双精度,64 位

    Float32 类型,单精度,32 位

    Float16 类型,半精度,16 位

    julia> 5.0
    5.0
    
    julia> 5.
    5.0
    
    julia> 0.3
    0.3
    
    julia> .3
    0.3
    
    julia> -1.2
    -1.2
    
    julia> -2.
    -2.0
    
    julia> 1e33  # 科学记数法
    1.0e33
    
    julia> 2e-7  # 科学记数法
    2.0e-7
    

    这些结果都是 Float64 的值

    十六进制浮点数的类型只能是 Float64

    julia> 0x7p1
    14.0
    
    julia> typeof(ans)
    Float64
    
    julia> 0x.5p-2
    0.078125
    
    julia> typeof(ans)
    Float64
    

    使用 f 来进行 Float32 值的输入

    julia> 1f33
    1.0f33
    
    julia> typeof(ans)
    Float32
    
    julia> 2f-7
    2.0f-7
    
    julia> typeof(ans)
    Float32
    

     浮点数类型转换为 Float32

    julia> Float32(0.2)
    0.2f0
    
    julia> typeof(ans)
    Float32
    
    julia> Float32(-1.2)
    -1.2f0
    
    julia> typeof(ans)
    Float32
    
    julia> Float32(1e33)
    1.0f33
    
    julia> typeof(ans)
    Float32
    

    有的版本的半精度浮点数 Float16 只用来存储,计算时会被转换为 Float32

    julia> 2 * Float16(4.)
    8.0f0
    
    julia> typeof(ans)
    Float32
    

    新版本 Float16 计算时也是 Float16

    julia> 2 * Float16(4.)
    Float16(8.0)
    
    julia> typeof(ans)
    Float16
    

    精度

    eps 函数可以用来计算浮点相对精度,即计算 1.0 到下一个可表示的浮点数之间的距离

    julia> eps(Float32)
    1.1920929f-7
    
    julia> eps(Float64)
    2.220446049250313e-16
    
    julia> eps()  # 相当于 eps(Float64)
    2.220446049250313e-16
    

    eps 函数的参数是浮点数,则计算这个值和下一个可表示的浮点数的绝对差

    eps(x) 的结果与 x 同类型,且满足 x + eps(x) 是下一个比 x 稍大的、可表示的浮点数

    julia> eps(1.2)
    2.220446049250313e-16
    
    julia> eps(2.)
    4.440892098500626e-16
    
    julia> eps(1e33)
    1.4411518807585587e17
    
    julia> eps(0.0)
    5.0e-324
    

    相邻的两个浮点数之间的距离并不是固定的,数值越小,间距越小;数值越大,间距越大

    浮点数在 0 附近最稠密,随着数值越来越大,数值越来越稀疏,数值间的距离呈指数增长

    如果 x 为 64 位浮点数,则 eps(x) 与 eps(Float64) 相同

    julia> eps(Float64)
    2.220446049250313e-16
    
    julia> eps(1.3)
    2.220446049250313e-16
    

    nextfloat 函数和 prevfloat 函数用来获取下一个或上一个浮点数

    julia> x = 1.01
    1.01
    
    julia> nextfloat(x)
    1.0100000000000002
    
    julia> prevfloat(x)
    1.0099999999999998
    

    特殊的浮点数

    Inf16(Float16),Inf32(Float32),Inf(Float64) 为正无穷,比所有的有限的浮点数都大

    -Inf16(Float16),-Inf32(Float32),-Inf(Float64) 为负无穷,比所有的有限的浮点数都小

    NaN16(Float16),NaN32(Float32),NaN(Float64) 为不存在,不能和任意浮点数比较大小(包括本身)

    julia> Inf + Inf
    Inf
    
    julia> Inf - Inf
    NaN
    
    julia> Inf * Inf
    Inf
    
    julia> Inf / Inf
    NaN
    
    julia> 0 / 0
    NaN
    
    julia> 0 * Inf
    NaN
    
    julia> 1 + Inf
    Inf
    
    julia> 1 - Inf
    -Inf
    
    julia> 1 / Inf
    0.0
    
    julia> 1 / 0
    Inf
    
    julia> -1 / 0
    -Inf
    

    浮点型的 typemin 和 typemax 函数

    julia> typemin(Float16)
    -Inf16
    
    julia> typemax(Float16)
    Inf16
    
    julia> typemin(Float32)
    -Inf32
    
    julia> typemax(Float32)
    Inf32
    
    julia> typemin(Float64)
    -Inf
    
    julia> typemax(Float64)
    Inf
    
  • 相关阅读:
    JAVA应用apache httpclient探测http服务
    C#中字符串与byte[]相互转换
    C#中位、字节等知识
    #JAVA操作LDAP
    C#正则表达式判断字符串是否是金钱
    【IDEA】使用Maven骨架创建JavaWeb项目
    【IDEA】回退操作记录
    【SpringMVC】IDEA 不识别webapp的解决办法
    【Layui】16 表单元素 Form
    【Layui】15 日期时间选择器 Laydate
  • 原文地址:https://www.cnblogs.com/sch01ar/p/9494578.html
Copyright © 2011-2022 走看看