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
Julia - 浮点型的更多相关文章
- Julia - 变量
变量的赋值 julia> a = 1 # 把 10 赋给变量 a 1 julia> a + 1 # 变量 a 的值加 1 2 julia> a = 4 # 重新赋值给变量 a 4 j ...
- 数量经济学推荐的Julia教程
http://quant-econ.net/jl/learning_julia.html Julia最为号称和c媲美的运行速度,想python一下简单的语法,虽然发展还不完善,但任然值得去关注. Ju ...
- IEEE754、VAX、IBM浮点型介绍和.NET中互相转换
[题外话] 最近在做C3D文件的解析,好奇怪的是文件中竟然存储了CPU的类型,原本不以为然,结果后来读取一个文件发现浮点数全部读取错误.查了下发现虽然在上世纪80年代就提出了IEEE754要统一浮点数 ...
- GOLANG 基本数据类型 浮点型
浮点型 主要为了表示小数 也可细分float32和float64两种 float64提供比float32更高的精度 取值范围 类型 最大值 最小非负数 float32 3.40282346638528 ...
- js转换数据类型为浮点型,并取两位小数点
转换数据类型 parseFloat();//转换为浮点型 parseInt();//转换为整形 取后面两位小数 bianliang.toFixed(2);//取后面两位小数,2代表取多少位
- python基础知识2——基本的数据类型——整型,长整型,浮点型,字符串
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 对于Python ...
- julia的优化?
julia> function fib1(n) if n==1 return n else return n+fib1(n-1) end end fib1 (generic function w ...
- [问题解决]《GPU高性能编程CUDA实战》中第4章Julia实例“显示器驱动已停止响应,并且已恢复”问题的解决方法
以下问题的出现及解决都基于"WIN7+CUDA7.5". 问题描述:当我编译运行<GPU高性能编程CUDA实战>中第4章所给Julia实例代码时,出现了显示器闪动的现象 ...
- 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...
随机推荐
- 将EasyRTMP_RTSP移植到Android平台实现的RTSP拉流转推RTMP直播流功能
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73253044 前言 安防互联网化的需求已经越 ...
- Vim技能修炼教程(6) - 行编辑器
在很久很久以前,计算机的运算能力还很弱,终端与主机的通信也不好.在没有显示器的时代,只能通过电传打字机跟主机通信.那时候只有行编辑器,编辑的时候只能在一行中进行.需要显示哪一行,就把哪一行或者哪几行打 ...
- [Python] 计算dataframe某一文本维度的平均长度
print np.mean(df.title.apply(lambda x: len(x))) # 24.072694718 print df.title.apply(lambda x: len(x) ...
- matlab load
参考文献:http://jingyan.baidu.com/article/fec4bce2257963f2618d8bfa.html 对应save,load 命令更加简单. load的方式有三种: ...
- 将HTML的页脚固定在屏幕下方
/********************************************************************* * 将HTML的页脚固定在屏幕下方 * 说明: * 处理的 ...
- Office for Mac
前情 真的用不惯Mac上的pages,所以就找Mac版的office.找了一个发觉不对,安装总是出错,当时也没有太大的需求,就把这事搁置了下来.今天要写技术文档的时候才终于下决心要把office下再下 ...
- Unity的 NavMeshObstacle 的使用详解
这个组件放在场景中的导航网格上,可以阻挡NavMeshAgent的移动.以Unity4.3.4为例. NavMeshObstacle 分为两种模式,一种是普通模式,通过 ...
- Jmeter-Threads(Users)
setUp Thread Group---测试开始前的准备操作,每次测试前都会执行 A special type of ThreadGroup that can be utilized to perf ...
- hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1
问题导读1.Hadoop文件系统shell与Linux shell有哪些相似之处?2.如何改变文件所属组?3.如何改变hdfs的文件权限?4.如何查找hdfs文件,并且不区分大小写? 概述文件系统 ( ...
- maven创建多模块项目
在eclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入ne ...