【发布时间】:2011-01-05 12:24:13
【问题描述】:
lastfew 几天来我一直在想这个问题,我正在努力表达我的问题。不过,我想我已经掌握了我想知道的内容。
为什么 c# 接受不精确的方式是使用浮点数来存储数据?与其他方法相比,使用它有什么好处?
例如,Math.Pow(Math.Sqrt(2),2) 在 c# 中并不精确。有可以精确计算它的编程语言(例如,Mathematica)。
我能想到的一个论点是,精确计算它比仅仅处理不准确性要慢得多,但是 Mathematica 和 Matlab 用于计算巨大的科学问题,所以我很难相信这些语言真的慢得多比c#。
那为什么会这样呢?
PS:很抱歉给你发了这些问题,你们真的很有帮助
【问题讨论】:
-
MatLab 在 Java 沙箱中运行。如果您不相信 MatLab 速度较慢,请尝试在 MatLab 中创建一个实时程序。去过那里,做到了,没有乐趣... :-)
-
好的,但是 Wolfram Mathematica 呢?我在互联网上找不到与 c# 相比的基准
-
内置于 TI-89 计算器中的 CAS 几乎可以帮助我完成大学数学课程的学习,这也比 .NET Framework 内置的数学功能更胜一筹。事实上,它们是为完全不同的用例而设计的。
-
是的,CAS 正是我想要的。但是没有可以实现的库吗?
-
你见过Math.NET吗?它不如 Mathematica 强大,但它可能会做你想做的事。否则,我会觉得 C# 不适合这项工作。
标签: c# floating-point floating-accuracy