int a=870,b0=-20, b1=120, a0=0, a1=3584;
double d=(b0 + (b1 - b0) * ((a - a0) / (a1 - a0)));
Console.Write(d);
给出的结果为-20
。我希望它精确到小数点后几位。
c#怎么了?
答案 0 :(得分:1)
您正在使用int
。如果要使用双精度,可以在进行除法运算之前将其转换为double
,或者只是简单地将它们定义为double。它正在按照您写的方式进行整数除法。
答案 1 :(得分:0)
您正在整数之间进行运算,因此结果是整数。试试:
double a=870,b0=-20, b1=120, a0=0, a1=3584;
double d=(b0 + (b1 - b0) * ((a - a0) / (a1 - a0)));
Console.Write(d);