我有下面的等式:不需要的舍入C++
//get thermistor resistor value
temp=(THERMISTOR_R0)/((temp2/temp)-1);
//get temperature value in Kelvins and convert to Celsiuis
temp=(THERMISTOR_BETA)/log(temp/(THERMISTOR_R0*exp((-THERMISTOR_BETA)/298)));
temp-=273;
desiredVoltage =((15700-(25*temp))/10);
THERMISTOR_R0
和THERMISTOR _BETA
是恒定的。
temp
temp2
和desiredVoltage
是无符号整数,并在计算之前定义。
问题是,例如,当术语((temp2/temp)-1)
低于1时,它下降到0。我想摆脱这种四舍五入,因为它导致了我的计算中的巨大问题。
我该怎么做?
另外,如果THERMISTOR_BETA是一个整数,OP可能需要为'(-THERMISTOR_BETA)/ 298'做类似的操作。 – 2012-08-13 23:24:26
@MichaelBurr:虽然编写'(-THERMISTOR_BETA)/ 298.'(其中'298.'是一个'double'文字)就足够了。 – 2012-08-14 08:56:37