Midpointrounding

tin*_*tes 0 c#

我试图完善以下数值,但我不知道出了什么问题.

NewValue -=(System.Math.Round(Global.WorkData.ValueOld - System.Math.Round (Global.WorkData.ValueOld * 20, 0) / 20, 2 ));
Run Code Online (Sandbox Code Playgroud)

这就是我做的:

NewValue -=(System.Math.Round(Global.WorkData.ValueOld, 2, MidpointRounding.AwayFromZero - System.Math.Round(Global.WorkData.ValueOld * 20, 2,MidpointRounding.AwayFromZero) / 20, 2 ));
Run Code Online (Sandbox Code Playgroud)

你能告诉我我的代码有什么问题吗?为什么我无法编译呢?谢谢

Llo*_*ell 5

你错过了一个括号:

NewValue -=(System.Math.Round(Global.WorkData.ValueOld, 2, MidpointRounding.AwayFromZero - System.Math.Round(Global.WorkData.ValueOld * 20, 2,MidpointRounding.AwayFromZero) / 20, 2 ));


NewValue -=(System.Math.Round(Global.WorkData.ValueOld, 2, MidpointRounding.AwayFromZero**)** - System.Math.Round(Global.WorkData.ValueOld * 20, 2,MidpointRounding.AwayFromZero) / 20, 2 );
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助你.

我认为你的目标是:(但我不是100%)

decimal OldValue = Global.WorkData.ValueOld;
decimal OldValueMaths = (OldValue - (OldValue * 20)) / 20;

NewValue -= Math.Round(OldValueMaths, 2, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)