在winform中 用户使用DataGrid 填入工资的数据 计算出 double类型的Sum (测试的时候Float类型在计算小数的时候不准确)
现在想确定 Sum 的值在某个范围内 比如 500 < Sum <= 2000 或者 2000 < Sum <= 5000 (个人所得税的范围)
编译的时候报  运算符“<”无法应用于“bool”和“int”类型的操作数  错误
由于需要 又不能把Sum强转成INT类型丢失小数部分 
请高手帮帮忙啊!!谢谢 

解决方案 »

  1.   

    Sum<= 2000&& Sum>500  
      

  2.   

    if( Sum > 500 && Sum <= 2000 ){
     /* Do Something */
    }else if( Sum > 2000 && Sum <= 5000 ){
     /* Do Something */
    }不能像写数学那样范围。
      

  3.   

    if( Sum > 500 && Sum  <= 2000 ){
     /* Do Something */
    }else if( Sum > 2000 && Sum  <= 5000 ){
     /* Do Something */
      

  4.   

    解释一下:
    500  < Sum  <= 2000 这里有两个操作符,< 和 <=他们都是逻辑运算符,所以他们的优先级是一样的,所以从左向右依次运算。相当于( 500 < Sum ) <= 2000左边这部运算的结果是个 bool 类型,所以最后就变成了 true <= 2000 或者 false <= 2000<= 这个逻辑运算符要求左右操作数的类型一致,但是左操作数是bool,右是int,自然编译不过。
      

  5.   

    这是规定。没有为什么所有的语言都是这样规定的。为什么 <=要这样写,这是规定。如果你能发明一种语言能解释 500 < Sum < 2000的话,那么使用这门语言的程序员也会按照你的规定来做的,但是你得考虑到程序员的习惯,毕竟你的语言是要给越多程序员使用你就越开心的。