十进制值检查是否为零

3 c# puzzle math

我正在尝试编写一个分区方法,它接受2个参数.

public static decimal Divide(decimal divisor, decimal dividend)
{
    return dividend / divisor;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果除数为0,我们得到的不能除以零错误,这是可以的.

我想做的是检查除数是否为0,如果是,将其转换为1.有没有办法在我的方法中有很多if语句?我认为很多if()都会变得混乱.我在数学上知道不应该这样做,但我有其他功能.

例如:

if(divisor == 0)
{
    divisor = 1;
}
return dividend / divisor;
Run Code Online (Sandbox Code Playgroud)

可以在没有if()声明的情况下完成吗?

Cod*_*ker 15

你可以像这样做一个条件if语句.这与VB.net中的IIF相同

return dividend / ((divisor == 0) ? 1 : divisor);
Run Code Online (Sandbox Code Playgroud)

确保用()包裹你的下半部分,否则你会得到一个除法错误.

  • 如有疑问,请添加括号. (5认同)

Jak*_*urc 12

通过使用?:运营商

return (divisor == 0) ? dividend : dividend / divisor 
Run Code Online (Sandbox Code Playgroud)

  • +1表示除以1是不必要的,只返回divident. (2认同)