双精度变量值等于 NaN
本文关键字:NaN 变量值 双精度 | 更新日期: 2023-09-27 18:34:44
我在 c# 中有以下代码
double sum1= 0;
double sum2=0;
sum1=(a*b-bb*t1);
sum2= (a*c-cc)*(a*t2-t3);
Double fs1= sum1/Math.Sqrt(sum2);
其中双精度变量的值为
a=19999
b=65445.370449999828
c=41.054005875599991
bb= 126053.41368000521
cc=15889463100.382524
t1=9999.0
t2=9999.0
t3=99980001.0
为什么我为双变量 fs1 获得值 NaN,但是当我在 Excel 中计算上述相同方程时Microsoft我得到的值等于 0.779331833
Math.Sqrt(sum2)
返回NaN
,因为sum2
为负
sum1 / NaN = NaN
无论如何,如果您想获得价值,请执行以下操作:
Double fs1 = sum1/Math.Sqrt(Math.Abs(sum2));
因为您的sum2
将被-1,58870531971129E+18
并且Math.Sqrt
方法返回Negative
值的NaN
。
这就是为什么您的fs1
将被48433880,2431746 / NaN
并且double / NaN
回报NaN
。
阅读:7.7.2 除法运算符