浮点数类型:

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

Julia - 浮点型的更多相关文章

  1. Julia - 变量

    变量的赋值 julia> a = 1 # 把 10 赋给变量 a 1 julia> a + 1 # 变量 a 的值加 1 2 julia> a = 4 # 重新赋值给变量 a 4 j ...

  2. 数量经济学推荐的Julia教程

    http://quant-econ.net/jl/learning_julia.html Julia最为号称和c媲美的运行速度,想python一下简单的语法,虽然发展还不完善,但任然值得去关注. Ju ...

  3. IEEE754、VAX、IBM浮点型介绍和.NET中互相转换

    [题外话] 最近在做C3D文件的解析,好奇怪的是文件中竟然存储了CPU的类型,原本不以为然,结果后来读取一个文件发现浮点数全部读取错误.查了下发现虽然在上世纪80年代就提出了IEEE754要统一浮点数 ...

  4. GOLANG 基本数据类型 浮点型

    浮点型 主要为了表示小数 也可细分float32和float64两种 float64提供比float32更高的精度 取值范围 类型 最大值 最小非负数 float32 3.40282346638528 ...

  5. js转换数据类型为浮点型,并取两位小数点

    转换数据类型 parseFloat();//转换为浮点型 parseInt();//转换为整形 取后面两位小数 bianliang.toFixed(2);//取后面两位小数,2代表取多少位

  6. python基础知识2——基本的数据类型——整型,长整型,浮点型,字符串

    磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 对于Python ...

  7. julia的优化?

    julia> function fib1(n) if n==1 return n else return n+fib1(n-1) end end fib1 (generic function w ...

  8. [问题解决]《GPU高性能编程CUDA实战》中第4章Julia实例“显示器驱动已停止响应,并且已恢复”问题的解决方法

    以下问题的出现及解决都基于"WIN7+CUDA7.5". 问题描述:当我编译运行<GPU高性能编程CUDA实战>中第4章所给Julia实例代码时,出现了显示器闪动的现象 ...

  9. 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)

    前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...

随机推荐

  1. LitJson 不支持 float 类型数据

    使用指引: 在 Unity 中使用 Best HTTP 插件的 LitJson 发送一些 Json格式数据给服务器,使用方式很简单: string jsonDataPost = JsonMapper. ...

  2. 手游服务端框架之使用Guava构建缓存系统

    缓存的作用与应用场景 缓存,在项目中的应用非常之广泛.诸如这样的场景,某些对象计算或者获取的代码比较昂贵,并且在程序里你不止一次要用到这些对象,那么,你就应该使用缓存. 缓存跟java的Coucurr ...

  3. Unity 播放 带 alpha 通道的视频(Video Player组件)

    孙广东  2017.6.18 http://blog.csdn.NET/u010019717 通常是  .webm类型文件!!!!!  你可以下载这个文件到本地: Http://tsubakit1.s ...

  4. Leetcode 590. N-ary Tree Postorder Traversal

    DFS,递归或者栈实现. """ # Definition for a Node. class Node: def __init__(self, val, childre ...

  5. [Linux] 输出文件的指定行

    1.获取第k行(以k=10为例) 要注意的是,如果文件包含内容不足10行,应该不输出. # Read from the file file.txt and output the tenth line ...

  6. 05-python中函数的使用

    函数:就是让程序模块化,把具有独立功能的代码块当成一个整体封装成一个函数 首先打印一个佛主看看: print(" _ooOoo_ ") print(" o8888888o ...

  7. ios Label TextFile 文本来回滚动 包括好用的三方

    通常显示不够了,比如八个字.只能显示6个字 .产品要求 来回滚动 下面有两种 方法 : 一种UIScrollView  一种 View动画  如果不能满足你  请点击这个 https://github ...

  8. 大规模向量相似度计算方法(Google在07年发表的文章)

    转载请注明出处:http://www.cnblogs.com/zz-boy/p/3648878.html 更多精彩文章在:http://www.cnblogs.com/zz-boy/ 最近看了Goog ...

  9. ubuntu 安装nodejs/npm

    安装发行稳定版 Ubuntu 默认仓库里带有Node.js,版本较旧,这并不是最新版,但是应该很稳定.执行如下命令:   1 2 sudo apt-getupdate sudo apt-getinst ...

  10. BZOJ4556 Tjoi2016&Heoi2016 字符串【后缀自动机+倍增+线段树合并】

    Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了 一个长为n的字符串s,和m个问题.佳媛姐姐必须正确回答这m个问题,才能打开 ...