读书人

请问上如要为负数就赋值为0的简单方

发布时间: 2013-02-25 10:23:36 作者: rapoo

请教下如要为负数,就赋值为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));

[解决办法]
引用:
ymg11=ymg11 <0?0:ymg11


只有这样最简单了。

读书人网 >C#

热点推荐