在 Net Standard 库中的 c# 中将十进制数舍入为正无穷大

Round decimal number to positive infinity in c# in Net Standard library

我试图在 C# .Net Standard 2.1 库中使用 Math.Round() 函数将 MidpointRounding.ToPositiveInfinity 枚举作为其模式参数将小数四舍五入为正无穷大,但我不知道为什么它没有'不存在于 MidpointRounding 枚举中。当项目使用 .net 5 时存在相同的枚举值 (ToPositiveInfinity)。 代码

Math.Round(2.336, 2, MidpointRounding.ToPositiveInfinity);

有谁知道我该如何解决这个问题?

MidpointRounding enum in .NET Standard 2.1只有AwayFromZeroToEven。其他模式,例如 ToPositiveInfinity,是后来在 .NET Core 3.0 中添加的。你不能使用不存在的功能(在你的目标运行时),除非你自己实现它。

但是,ToPositiveInfinityMath.Ceiling 的作用相同,因此您可以使用它。 Math.Ceiling 但是不支持指定要舍入到的小数位数,但是您可以通过一些乘法来解决这个问题:

Math.Ceiling(2.336 * 100) / 100;