提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-11-13 10:07:18.040|阅读 7 次
概述:这个标题简洁明了,能够准确表达文章内容的核心,即讨论 .NET 和 .NET Core 3.0 在浮点计算上的变化以及如何应对这些差异。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在 .NET Core 3.0 中,对浮点解析和格式进行了更改,以符合 IEEE 754-2008 标准。您可以阅读有关这些更改的更多信息。在使用 Stimulsoft 产品时,这些更改最常表现为舍入数字和出现“负号”零。
Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能,Stimulsoft Ultimate包含了所有内容!
负号零和正号零在数学分析中用作负无穷小量和正无穷小量的常规符号。在典型的编程任务中,常规零就足够了,但一些高级数学计算需要这些区别。为了解决这个问题,引入了“负号零”。
负零是四舍五入负数的结果。例如,以前,Math.Round(-0.01, 0)的结果为“0”,但现在为“-0”。在格式化数字(数字、货币、百分比格式)时也会出现这种情况,因为在格式化过程中使用了四舍五入。从数学上讲,这种方法更准确。然而,从编程的角度来看,这被认为是一个“重大变化”,因为四舍五入操作的标准行为已经改变,并且没有直接的方法来禁用这种修改。
为了解决出现负零的问题,我们修改了 .NET Core 系列产品,默认情况下,负号零被替换为常规零。但是,如果您的计算仍然需要负零,则可以通过设置StiOptions.Engine.AllowNegativeZero = true选项来启用它。
.NET Core 3.0 中的一项改进涉及对浮点数语法分析的更改。这种改进的原因在于数字在 float 和 double 类型中的存储方式。这些数字以二进制形式存储,仅在四舍五入或显示在屏幕上时转换为十进制。例如,数字“0.0045”实际上以“0.00449999999999999996”之类的形式存储在内存中。然后,在显示时,一种特殊的方法会从此二进制表示形式“恢复”原始数字。因此,不可能用 float 和 double 类型精确表示十进制数 - 它们总是会包含一定程度的误差。以前
,这些数字转换的算法与 IEEE 754-2008 标准中指定的算法不同,这导致不同系统上的计算结果不同。现在,随着 .NET Core 3.0 中的更新,计算结果符合标准。但是,与早期版本相比,这可能会导致不同的结果,这也会影响标准 Round 函数,可能产生与以前不同的结果。
这给一些同时维护 .NET Framework 和 .NET Core 版本产品的客户带来了问题,因为他们现在看到两个版本的结果不同。请注意!
为确保计算结果在不同环境中一致且可预测,我们建议使用以下方法:在所有关键计算中,将类型转换为十进制。这将保证准确的舍入并最大限度地减少任何计算中的错误。修改多个报告很容易,但有些用户遇到需要重新制作许多以前创建的报告的情况。针对这种情况,我们添加了一个新选项:
StiOptions.Engine.ForceConversionToDecimalInTextFormat = false;
默认情况下,此选项处于禁用状态。如果将其设置为 true,则在以“数字”、“货币”和“百分比”格式格式化文本时,浮点数和双精度参数将自动转换为十进制,以提高舍入精度。
要实现银行舍入,您需要使用标准Math.Round函数中的MidpointRounding.AwayFromZero参数。为了方便起见,我们之前已将此参数添加到我们的自定义Round函数中。根据用户请求,我们还可以设置此参数的默认值,这样您就不必更新所有报告模板。为此,您可以配置以下选项:
StiOptions.Engine.MidpointRounding = MidpointRounding.AwayFromZero;
通过使用上述选项,您可以管理计算准确性并避免将产品迁移到 .NET 时出现的潜在问题。想要了解Stimulsoft Reports 报价信息的朋友,欢迎咨询。
加入官方社群 740060302,欢迎相互交流
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文将深入探讨HOOPS对B-Rep的支持,以及它如何为开发者和设计师提供精准且高效的三维建模体验。
.NET应用UI框架DevExpress XAF v24.2即将在近期更新,新版本官宣.NET Core / .NET增强,欢迎加入社群及时获取最新信息!
在3D工程领域,保持领先地位至关重要。随着CAD行业的不断演变,以下是我们预计在未来几年将塑造行业的五个关键趋势,以及HOOPS SDK如何助力这些变革。
VMProtect 是强软件保护系统,代码转虚拟机字节码,多编译类型,依复杂原理护码,广适多领域,保安全与知产,今天就跟随小编一起了解下该软件在多场景下的软件保护应用
一个基于.NET框架的报表生成器,能够帮助你创建结构、功能丰富的报表。报表设计器界面友好,使用便捷,让你轻松创建所有报表。
Stimulsoft Reports.Web第一款可以直接在Web中编辑报表的报表生成工具
Stimulsoft Reports.Wpf针对wpf用户界面架构开发的报表工具,无需上网,即能轻松实现控件所有功能
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢