.NET十进制,IEEE十进制。。。。关于这个和未来有什么讨论吗?

.NET十进制,IEEE十进制。。。。关于这个和未来有什么讨论吗?,.net,ieee-754,.net,Ieee 754,请注意,我不是在寻找基于意见的东西或第三方图书馆——我只是想确认没有任何计划(或指向未来权力机构的某些讨论)。我尝试了谷歌,但没有找到任何东西,所以看起来我正在走向“使用英特尔库在C++/CLI中编写自己的实现” 和许多人一样,我也在研究财务数字,这意味着浮动问题非常严重。同时,.NET decimal是一个速度很慢但又很大(128位大)的beast,这使得当您积累了数十万个decimal并希望它们包含更多信息时,使用起来效率很低 IEEE 754为32、64和128位定义了3种十进制类型,这些

请注意,我不是在寻找基于意见的东西或第三方图书馆——我只是想确认没有任何计划(或指向未来权力机构的某些讨论)。我尝试了谷歌,但没有找到任何东西,所以看起来我正在走向“使用英特尔库在C++/CLI中编写自己的实现”

和许多人一样,我也在研究财务数字,这意味着浮动问题非常严重。同时,.NET decimal是一个速度很慢但又很大(128位大)的beast,这使得当您积累了数十万个decimal并希望它们包含更多信息时,使用起来效率很低

IEEE 754为32、64和128位定义了3种十进制类型,这些类型可能在主流处理器的硬件中得到支持(例如,Power Series,它们已经有了较少的commmon类型)。有一个优化的英特尔库来做十进制数学,很可能至少在某一点上,硬件中的数学会更简单

我所能找到的只是带注释的C#标准中关于.NET decimal和当时提出的IEEE标准之间的互操作的一个古老的讨论,它被拒绝了,但以一种可以识别位字段是.NET decimal还是位Inved IEEE decimal 128的方式

从那时起,许多年过去了。现在IEEE 754:2008已经完成了,我想知道是否有任何官方已经发布了关于如何继续下去的消息。正如我所说的,.NET十进制速度很慢,并且没有任何机会获得硬件加速——而我是不知情的大


那么,有人知道博客里的什么吗?注意-它必须是官方的或参考的,我在这里不是为了听取与.NET langauges或BCL团队无关的人的意见。这是关于一个规范化资源是否在将来考虑其他数据类型。。。可能是在.NET 5.0/6.0的时间范围内。

我不知道微软的计划(如果有的话)

不过,您可以在下面的页面上查看十进制算术

您可以获得他的十进制算法规范(IEEE 754十进制浮点的基础),以及C语言参考实现、测试用例等:

编译后,p/从您编写的C#十进制浮点结构调用这些函数,您的操作应该很好


大部分。与其他代码的互操作性可能会有问题。

我已经编写了金融软件,完全理解为什么简单的整数是不够的

要证明一个否定的观点是非常困难的,但下面是:

简言之,如果语言不需要它,那么.NET不在乎

查找需要它的语言: 看起来Dietmar Kühl打算给c加一个小数,但未能及时提交:

尽管如此,IEEE仍然在小数方面做了大量的工作。尝试以下谷歌搜索: Decimal site:ieee.org and limit it to the last month. Decimal Draft site:ieee.org and limit it to the last year. 十进制站点:ieee.org,并将其限制为最后一个月。 十进制草案站点:ieee.org,并将其限制在去年

如果是在硬件中,软件最终会拥有它。汇编可以让你做任何硬件可以做的事情,但是如果你被困在一个不知道新操作码的虚拟机中,我不确定你除了模拟之外还能做什么

所以现在我看不到比你更多的东西。对不起


哦,你可以从我这里告诉supercat,(a+b)+c=a+(b+c)在整数上的保证比在浮点上的保证要少。位也可能从非无限大整数的左端脱落。”“a”可能是负面的,如果您先添加它,它可能会使您免于溢出。

对于投票结束的人:我不是在寻找意见(这里的阅读帮助,真的),而是来自相关人员(即参与语言规范,.NET运行时的人员)的博客帖子,他们在那里谈论这个问题。这是我写的。@TomTom先,别傻了。第二,我会从头开始这个问题,因为它看起来更适合那个站点,而不是这里。以10为基数的浮点类型比固定点类型有什么优势?我知道一些处理器在历史上包括了对十进制浮点的支持,但我认为它的时代已经过去了。如果硬币很重要,那么尝试将两个足够大的值相加,结果无法精确计算到一便士应该会失败,而不是产生错误的结果,但我知道没有浮点类型,十进制或其他,这是因为它是基于十进制的,因此可以用于会计和财务计算。处理器现在确实开始支持IEEE754十进制类型了。IBMPOWER6在硬件中包括DFP,IBMSystemZ9也是如此。锡拉克斯;可配置向量DFP协处理器。到目前为止,非标准是不好的-现在有了标准的硬件。如果你关心数字,那么这比任何浮点要好得多,因为它是精确的小数。现在C#和VB.NET编译器是(Apache)开源的,如果你能找到足够多感兴趣和有时间的社区,现在就可以添加IEEE十进制语言支持。很好的参考-也就是说,Intel已经提供了一个参考库,我可以将其用作C++/CLI库的基础。提供了所有功能并进行了充分优化;)“(a+b)+c=a+(b+c)不再保证整数”——它们在两个补码的算术中是相同的。这些天没有人看到溢出位。