返回信息流我唯一关心的是运算精度。
因为有一个实验,要用到大量的数据统计,实验结果不理想,以为是程序写错了,翻来覆去才发现是java运算精度不够。
用BigDecimal是不可能了,数学公式太多了,一个一个改太麻烦了。
64位的精度高吗?
这是一条镜像帖。来源:北邮人论坛 / java / #26767同步于 2013/9/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
64位jdk 和 32位jdk 有什么区别?
WQNMLGB
2013/9/5镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 nuanyangyang 的大作中提到: 】
: 好奇你是怎么知道Java的精度不够的?
1 测试集和训练集对照
2 简单样本上测试结果符合预期
3 大量数据集(538 X 7259的数据集)上运行结果偏差大
4 数学意义等价的2个数学公式运算结果不相等——在大数据集上。
【 在 WQNMLGB 的大作中提到: 】
:
: 1 测试集和训练集对照
: 2 简单样本上测试结果符合预期
: ...................
建议检查计算方法。比如,1.00000000000123456789123456和0.00000000000123456789123456的精度是不一样的。前者只有1.00000000000123这样的精度,后者能表示全部15位有效数字。
Java的double和float都是IEEE754标准的数据类型,和32位和64位完全没有关系。32位和64位是CPU的字长,和浮点数的精度没有关系。
不会的
【 在 WQNMLGB 的大作中提到: 】
: 我唯一关心的是运算精度。
: 因为有一个实验,要用到大量的数据统
计,实验结果不理想,以为是程序写错了,翻来覆去才发现是java运算精度不够。
: 用BigDecimal是不可能了,数学公式太多了,一个一个改太麻烦了。
: ...................
32/64的区别不就是memory/pointer/register if x86-64,搞什么浮点数嘛……
根据最近一段时间的经验,每当出错/太慢的时候,如果排查完能想到的原因,开始考虑是 框架/架构 的问题,那结果一定是:
还有没考虑到的程序错误!