質問
celsius = (5.0/9.0) * (fahr-32.0);
はそれだけでは、開発の選択肢は、開発者が決定したアフターサービスについては、理由があります。と思いフロートはダブルでも予防が溢れるなかで小数点形式で利用します。その理由は、私が一望は何かな?
解決
私の理由は、確実に結果を含.その自然選択肢として使用することも可能で最大のデータ型になります。
他のヒント
celsius = (5.0/9.0) * (fahr-32.0);
この式では、 5.0
, 9.0
, は、 32.0
は double
s.このデフォルトのタイプのための浮動小数点数は含まれておりませんがく float
s、その利用 F
接尾辞:
celsius = (5.0F/9.0F) * (fahr-32.0F);
った場合、 fahr
た double
, その結果、この最後の表現が まだ き double
:としてVaibhavな種類の推進などを避ける潜在的な精度。
その表情はキャストの倍精度でのリテラルで指定されている倍精度値によるデフォルトです。指定した場合、リテラルの方程式として浮か、表現を返します。考え、以下のコード(Mac OS Xに使用され4.01).
#include <stdio.h>
int main() {
float celsius;
float fahr = 212;
printf("sizeof(celsius) ---------------------> %d\n", sizeof(celsius));
printf("sizeof(fahr) ------------------------> %d\n", sizeof(fahr));
printf("sizeof(double) ----------------------> %d\n", sizeof(double));
celsius = (5.0f/9.0f) * (fahr-32.0f);
printf("sizeof((5.0f/9.0f) * (fahr-32.0f)) --> %d\n", sizeof((5.0f/9.0f) * (fahr-32.0f)));
printf("sizeof((5.0/9.0) * (fahr-32.0)) -----> %d\n", sizeof((5.0/9.0) * (fahr-32.0)));
printf("celsius -----------------------------> %f\n", celsius);
}
出力:
sizeof(celsius) ---------------------> 4
sizeof(fahr) ------------------------> 4
sizeof(double) ----------------------> 8
sizeof((5.0f/9.0f) * (fahr-32.0f)) --> 4
sizeof((5.0/9.0) * (fahr-32.0)) -----> 8
celsius -----------------------------> 100.000008
浮動小数点数の利用高精度。結果を割り当てることができるフロートなし不当なります。
日本のK&Rv1で、より積極的に取り組めるfloat/doubleも呼ばれてすべて表現浮動小数点タイプを常に評価を用いたダブルの表に問題がある場合efficencyが重要です。浮動小数点一定せずにf-F、l、機エレクトロルミネッセンスチン型ダブル。し、それ以上広くできない場合はのよfまたはFを接尾辞の定数の型浮いてしまうからなのです。場チンの機エレクトロルミネッセンスでのlong型ダブル。
所属していません StackOverflow