gpt4 book ai didi

c# - 在 C# 中使用 System.Decimal 进行数学运算

转载 作者:IT王子 更新时间:2023-10-29 04:34:42 24 4
gpt4 key购买 nike

需要能够对十进制数使用标准数学函数。准确性非常重要double 不是可接受的替换。 C#中十进制数如何实现数学运算?

编辑我正在使用 System.Decimal。我的问题是 System.Math 不适用于 System.Decimal。例如,以下函数不适用于 System.Decimal:

  • 系统.数学.Pow
  • 系统.数学.Log
  • 系统.数学.Sqrt

最佳答案

嗯,Double使用 floating point除非你正在为 3D 图形或其他东西做三角函数,否则这不是你想要的。

如果你需要做简单的数学运算,比如除法,你应该使用System.Decimal .

来自 MSDN:decimal 关键字表示 128 位数据类型。与浮点类型相比,小数类型具有更高的精度和更小的范围,这使其适用于金融和货币计算。

更新:经过一些讨论,问题是您想要使用 Decimals,但 System.Math 只采用 Double 来实现几个关键功能。遗憾的是,您使用的是高精度数字,由于 Decimal 是 128 位而 Double 只有 64 位,转换会导致精度损失。

显然有一些可能的计划让大部分 System.Math 处理 Decimal,但我们还没有。

我在谷歌上搜索了一下数学库并整理了这个列表:

  1. Mathdotnet ,一个用 C#/.Net 编写的数学开源(MIT/X11、LGPL 和 GPL)库,旨在为符号代数和数值/科学计算提供一个自包含的干净框架。

  2. Extreme Optimization Mathematics Library for .NET (付费)

  3. DecimalMath这是一个相对较新的产品,它宣传自己为:Microsoft 忘记的对 Decimal 的可移植数学支持等等。 听起来很有前途。

关于c# - 在 C# 中使用 System.Decimal 进行数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888366/

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