我需要能够在十进制数字上使用标准数学函数.准确性非常重要.double
不是可接受的替代品.有没有图书馆允许这个?
编辑
我正在使用System.Decimal
.我的问题是System.Math
不起作用System.Decimal
.
__PRE__
是否所有功能都不起作用 System.Decimal
Bri*_*Kay 15
好吧,Double使用浮点数学,这不是你想要的,除非你正在为3D图形做三角测量.
如果您需要执行简单的数学运算,例如除法,则应使用System.Decimal.
来自MSDN:decimal关键字表示128位数据类型.与浮点类型相比,十进制类型具有更高的精度和更小的范围,这使其适用于财务和货币计算.
更新:经过一些讨论后,问题是你想使用Decimals,但System.Math只需要双打几个关键功能.遗憾的是,您正在使用高精度数字,并且由于十进制为128位而Double仅为64,因此转换会导致精度损失.
显然有一些可能的计划使System.Math的大部分处理Decimal,但我们还没有.
我用谷歌搜索了一些数学库,我终于找到了一个现已删除的StackOverflow问题,其中TheVillageIdiot提到了以下库:
1)Mathdotnet,一个用C#/ .Net编写的数学开源(MIT/X11,LGPL和GPL)库,旨在为符号代数和数值/科学计算提供一个独立的清洁框架.
2)用于Microsoft®.NET应用程序的IMSL™C#数字库(付费)
你没有给我们足够的信息来回答这个问题.
十进制和双精度都不准确.当表示的数量恰好等于形式的一部分(x/10 n)时,对于x和n的合适选择,小数的表示误差为零.对于x和n的合适选择,当数量恰好等于形式的一部分(x/2 n)时,双精度的表示误差为零.
如果您处理的数量不是该形式的分数,那么您将得到一些表示错误,句点.特别是,你提到了平方根.许多平方根都是无理数; 它们没有小数形式,因此任何使用分数的表示格式都会产生很小的错误.
你能更详细地解释一下你在做什么吗?
DecimalMath包含System.Math
类中带有decimal
参数类比的所有函数
注意:这是我的库,其中还包含一些示例
归档时间: |
|
查看次数: |
18586 次 |
最近记录: |