我有下面的等式:不需要的舍入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