Why is celsius = 5 * (fahr - 32) / 9 ?
2016-02-06 18:05
323 查看
Go
to my personal blog
There is a program
to print Fahrenheit-Celsius table as below.
The right part of the
figure is the output of this program. The Celsius temperature is computed and assigned to the variable
the statement
The reason for multiplying by 5 and then dividing by 9 instead of just multiplying by 5/9 is that in C, as in many other languages, integer
division truncates: any fractional part is discarded. Since 5 and 9 are integers, 5/9 would be truncated to zero and so all the Celsius temperatures would be reported as zero.
The C Programming Language
to my personal blog
There is a program
to print Fahrenheit-Celsius table as below.
#include <stdio.h> /* print Fahrenheit-Celsius table for fahr = 0, 20, ..., 300 */ int main() { int fahr, celsius; int lower, upper, step; lower = 0; /* lower limit of temperature table */ upper = 300; /* upper limit */ step = 20; /* step size */ fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr - 32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }
The right part of the
figure is the output of this program. The Celsius temperature is computed and assigned to the variable
celsiusby
the statement
celsius = 5 * (fahr - 32) / 9;
The reason for multiplying by 5 and then dividing by 9 instead of just multiplying by 5/9 is that in C, as in many other languages, integer
division truncates: any fractional part is discarded. Since 5 and 9 are integers, 5/9 would be truncated to zero and so all the Celsius temperatures would be reported as zero.