为了测试目的在Java中模拟excel演算行为

问题描述 投票:0回答:1

我正在用Java实现基于Markov链的用Excel公式编写的算法,并将结果与​​Jxl库进行比较。如我所读,问题是这两种语言的精度不同。实际上,它们只返回第二个十进制数字的相等结果。有没有一种方法可以在Java中“模拟” Excel精度,以测试算法的行为是否完全相同?

java excel precision jxl markov-chains
1个回答
1
投票

您可以在此处找到Excel精度如何工作的分析:

https://community.oracle.com/thread/2053255?start=15&tstart=0

似乎在处理时四舍五入为第16个十进制数字。

请参见此问题以模拟浮点精度:

Matching Excel's floating point in Java

我想这一切都意味着内部,即在单个单元格的公式内部,Excel使用的是普通双精度。但是在设置单元格的值时,小数点后16位四舍五入。这意味着对于您的算法,每当曾经有中间结果写入单元格时,您都需要使用链接答案中的舍入方法。测试一下,对我来说,尚不清楚这些中间值是否需要取整。

© www.soinside.com 2019 - 2024. All rights reserved.