1723.5/5的余数应该是3.5,但用
long x;
double m = Math.DivRem((long)1723.5, (long)5.0, out x);
得到余数是 -1.5 (怪,3.5的余数居然变成了负值)用
double m1 = Math.IEEERemainder(( double )5.0,(double )723.5);
得到余数是3,也无法得到3.5
long x;
double m = Math.DivRem((long)1723.5, (long)5.0, out x);
得到余数是 -1.5 (怪,3.5的余数居然变成了负值)用
double m1 = Math.IEEERemainder(( double )5.0,(double )723.5);
得到余数是3,也无法得到3.5
private void button4_Click(object sender, EventArgs e)
{
double y = 1723.5 % 5; // y结果是: 3.5
long x;
double m = Math.DivRem((long)1723.5, (long)5.0, out x); // x返回值: 3
double m1 = Math.IEEERemainder((double)5.0, (double)723.5); // m1结果是: 5.0
}
上面是实测结果。(1) 1723.5 % 5 = 3.5 正常(2) 第二种情况,先做强制转换成长整型,再求余。
等效计算式是:1723 % 5 = 3(3) 第三种情况是,比较小的数,除以比较大的数,等于被除数
等效计算式是:5.0 % 723.5 = 5.0