C#数学。全面问题
我在C#中对数字进行四舍五入有困难。这是我的密码:C#数学。全面问题,c#,rounding,C#,Rounding,我在C#中对数字进行四舍五入有困难。这是我的密码: public static double GetHighTargetHR (string birthdate, string examDate) { double HighTargetHR = 0; double age; double constant = 220; age = CalculateAge(birthdate, examDate); if (age > 0) { HighTargetHR
public static double GetHighTargetHR (string birthdate, string examDate)
{
double HighTargetHR = 0;
double age;
double constant = 220;
age = CalculateAge(birthdate, examDate);
if (age > 0)
{
HighTargetHR = ((constant - age) * 0.8);
Math.Round(HighTargetHR, 0, MidpointRounding.AwayFromZero);
}
return HighTargetHR;
}
这个病人的年龄是26岁。所以220-26=194*0.8=155.20
我希望代码返回155。无论我对Math.Round函数做了什么更改,它都返回155.20。如何使其返回偶数?您必须影响数学结果。四舍五入到变量。否则,它将被简单地丢弃
HighTargetHR = Math.Round(HighTargetHR, ...);
您需要指定正在使用的函数的结果(
Math.Round
):
函数返回一个值;因此,当您使用某个函数时,必须将其返回值赋给一个变量。您无法使用round函数的返回类型
HighTargetHR = Math.Round(HighTargetHR, 0, MidpointRounding.AwayFromZero);
Math.Round()
返回舍入值。您忽略了返回值。正如Pac0和CodeCaster所提到的,您没有返回舍入调用的结果,只是将其丢弃。Int
s是值类型。它们不是通过引用(像引用类型)传递到方法中的,因此不能被操作。因此,该方法返回一个值。请参阅@Liam引用类型或值类型不通过引用传递,除非指定了我们的out
。
HighTargetHR = Math.Round(HighTargetHR, 0, MidpointRounding.AwayFromZero);