我正在编写一个用于区间算术的 C# 库,为此我需要 将浮点运算舍入模式设置为向上和向下。我知道在 C++ 中 它可以通过 fesetround() 函数来实现。 C# 中有等效的吗? 或者如果没有,我怎样才能以其他方式实现这一目标?
最佳答案
我遵循 Pascal Cuoq 的建议,创建了一个非常简单的单函数程序集。 如果其他人遇到过这样的问题,我会将其发布在这里。
使用我的库的解决方案:
- 从以下位置下载 dll 文件:https://www.dropbox.com/s/o3vfxe4rpefhly7/RoundModeUtil.dll
- 在您的项目中添加对库的引用。
- 包括使用 RoundModeUtils;项目代码中的行。
用法:
static void RoundModeConfig::setround( int mode ); // mode can be set to one of the following values: static int RoundModeConfig::UPWARD static int RoundModeConfig::DOWNWARD static int RoundModeConfig::DEFAULT // To nearest mode. static int RoundModeConfig::TOWARDZERO
感谢汉斯·帕桑特的建议,我应该记住它。 感谢大家的帮助,希望有人会发现我的 dll 有用:)
关于c# - 是否有与 c++ fesetround() 函数等效的 C# 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241545/