请教下如要为负数,就赋值为0的简单方法?请前辈指导!
环境:vs2010+c#+winform
问题:程序里有很多下边的这些公式,希望如果ymg11最终为负数,就把ymg11赋值为0,请教下有没有什么简单的方法?
ymg11 = Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1);
------解决方案--------------------
ymg11 = Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1)<0?0:Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1);
------解决方案--------------------if(ymg11 < 0)
{
ymg11 =0;
}
------解决方案--------------------ymg11=ymg11 <0?0:ymg11
------解决方案--------------------
ymg11 = Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1);
if(ymg11<0)
ymg11=0;
------解决方案--------------------ymg11 = Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1);
if(ymg11<0)
ymg11=0;
还是4#的这个比较妥当。
从代码的可读性考虑,合并成一句的并不好。
------解决方案--------------------ymg11 = Math.Max(0,Math.Round((ymg04 - ymg10 * (ymfhcd / 100) * (ymfhnhl / 100)) / ((ymnscd / 100) * (ymnshl / 100)),1));
------解决方案--------------------
只有这样最简单了。