Java相当于Matlab的`eps`或Numpy / Python的`spacing`函数(浮点相对精度)
|
背景 Matlab的内置eps函数[1]可以取一个数值X并返回“从abs(X)到下一个更大的相同精度的浮点数的正距离”. >> eps(1)
ans =
2.2204e-16
>> eps(single(1))
ans =
1.1921e-07
>> eps(1e6)
ans =
1.1642e-10
>> eps(single(1e6))
ans =
0.0625
同样,Numpy提供了间距函数[2]: In [18]: import numpy as np In [19]: np.spacing(1) Out[19]: 2.2204460492503131e-16 In [20]: np.spacing(np.single(1)) Out[20]: 1.1920929e-07 In [21]: np.spacing(1e6) Out[21]: 1.1641532182693481e-10 In [22]: np.spacing(np.single(1e6)) Out[22]: 0.0625 题 Java中是否存在等效函数(因此像Clojure这样的JVM语言)? 参考 > [1] http://www.mathworks.com/help/matlab/ref/eps.html > C中的实际函数实现似乎是在https://github.com/numpy/numpy/blob/master/numpy/core/src/npymath/ieee754.c.src#L323(npy_nextafter之前的许可证横幅给我的问题一些讽刺). 解决方法你想要 java.lang.math.ulp:
此外,可用于floats.一些background on ULPs. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – [Bind(Exclude =“AlbumId”)]注释在数据验证中的作
- java – 如何从GenericRecord获取类型值?
- java – 如何在为actionbar使用自定义主题时更改actionbars
- java – 在Maven项目中管理JAXB生成的类
- java – ICS(iCalendar)UID的用途和用途
- java – Eclipse 2.0.2和Maven 0.17配置
- java – BigDecimal =(添加并分配)…如何做到这一点?
- java stream – 在将字符串拆分两次后得到结果
- PHP Laravel实现文件下载功能
- 客户端和服务器上的GWT / Java中的JSON或YAML编码
