首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从float转换为BigDecimal然后再返回是否有危险?

从float转换为BigDecimal然后再返回是否有危险?
EN

Stack Overflow用户
提问于 2012-04-01 02:05:22
回答 1查看 2.9K关注 0票数 5

我正在编写一个程序,该程序生成用于VHDL测试台的测试向量。测试平台实质上是测试一块充当单精度浮点加法器的硬件,因此向量将符合IEEE754标准。

无论如何,我目前的生成计划是将浮点值转换为BigDecimal,进行必要的算术运算,然后再转换回float。这很危险吗?精度是否会丢失,从而导致测试向量中可能出现不准确的结果?我想转换为BigDecimal,这样就可以避免舍入问题。

那么这会截断结果吗?

代码语言:javascript
运行
复制
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();

其中A和B是一些浮点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-01 02:57:30

如果您的目标是在浮点数的预期限制内拥有精确的32位浮点向量,那么我喜欢您的方法。首先将32位浮点数转换为精度更高的对象,执行几个数学步骤,然后再转换回32位浮点数。最后,如果您在32位浮点数中执行相同的一系列步骤,舍入误差可能会更低。

如果您的目标是准确地模拟使用32位浮点数执行本机计算的硬件的预期结果,那么您可能会冒着错误报告测试失败的风险,因为您的计算比被测试的硬件执行得更准确。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9958355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档