gpt4 book ai didi

c# - 任何等效于 C# 的 "extended"?

转载 作者:太空狗 更新时间:2023-10-29 20:31:17 25 4
gpt4 key购买 nike

我正在开发我的 Mandelbrot screensaver 的新版本我的浮点精度快用完了 - 简单 double values 没有足够的有效数字来满足我的需要。

更多有效数字 = 更高级别的分形放大

当我在 Delphi 7 中编写此屏幕保护程序的一个版本时,我使用了 extended浮点型,80 位大小。

在 .NET 中,我可以切换到 decimal ,但性能受到的影响非常糟糕,分形生成速度降低了 20 倍左右。

.NET 是否有任何等效的扩展?或者,是否有比 double 精度更高的数字类型仍然使用 FPU 进行评估,因此没有 decimal 的高性能?

更新

我的屏幕保护程序已经设法将分形放大了许多(许多!)数量级;目前,仅当使用的数字类型无法分隔相邻像素的纵坐标时,它才会重置为基础分形。双扩展改进带来的额外 16 位精度将使我的大小增加近 16 倍。

至于性能,我的算法已经设法消除了 95-99% 的所需数学运算(与计算许多像素的原始实现相比),同时保留了分形的完整性。

最佳答案

On 64-bit platforms, the Extended type is an alias for Double, which is only 8 bytes. On 32-bit platforms, an Extended number is represented as 10 bytes (80 bits).

这意味着即使您的 Delphi 程序在 64 位平台上也可能表现不佳。

如果您需要超过 64 位的数字数据类型,请选择 decimal 并优化您的算法以提高性能。

关于c# - 任何等效于 C# 的 "extended"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com