DAVID J.マラン:あなたはおそらく知っているように、 温度を使用して測定する 異なるにおいて異なるスケール 世界の一部。 例えば、212度華氏です 摂氏100度と32度 華氏は0℃である。 我々はコンピュータを持っていた場合、それは素晴らしいことではないだろう に私たちを許可されたプログラム 華氏、言う、に変換 摂氏? さて、私たちは、そのプログラムを書くことができます。 まずはcs50.hを含んから始めましょう、 私たちは、呼び出された関数を使用できるように、 GETのint型のように、取得しフロートを取得 ユーザーからの数が、この時間A 浮動小数点数 - 1 小数点付き。 それでは、標準IO.Hが含まみよう 我々は、へのアクセス権を持つように 印刷Fのような機能。 との、また主を宣言しましょう 通常の方法で。 次のためにユーザーにプロンプ​​トを表示してみましょう 華氏温度。 今、実際にその温度を取得してみましょう 利用者からの、最初のバイ という変数を宣言 float型のF。 その変数を意味し、再びフロート、、 、浮動小数点値を記憶する 小数点付き1。 のはそれをリターンを割り当ててみましょう GET floatの値。 、その後の算術を少しやらせる その上で、最初に別のフロートを宣言 C言語で摂氏とストアのというC いくつかの一般的な算術演算の結果。 5.0は9.0倍、Fマイナス32.0で割った。 それでは、結果を印刷してみましょう この計算の。 %のF - のプレースホルダを意味する 浮動小数点値 - プリントアウトするために、コンマのC 摂氏温度。 のが私の最終的な内容を保存してみましょう。 C.実行するには、Fのプログラムを使用してコンパイル ドットでCにFを大幅に削減する との、共通のものを試してみましょう 気温。 華氏212度 100℃である。 華氏で32度です 摂氏0度。 今、このプログラムを少し改良することができます それほど多くの0年代を印刷しないことによりビット その小数点以下の。 これを行うには、私はするつもりだ バックライン11に戻る。 とだけではなくパーセントFを指定し、 私は、代わりに言って、指定するつもりだ 私は0.1 F、知らせる印刷F 浮動小数点値を印刷したい 小数点以下の1の値に。 それでは私のプログラムを再保存してみましょう。 その後CにメイクFで再コンパイル Cにドットスラッシュ、Fでそれを再実行し、 、212、言う、ので再試行しましょう その私に100.0を与えます。 今では私がしたことは注目に値します 9行目では非常に意図的なもの。 私は5が5.0、9で書いたことに注意してください 9.0として、さらには32 32.0など。 さて、これらの値の最初の2だった 非常に意図的になるように選択 浮動小数点値、ではないという理由だけで 残りの部分との整合性 私のプログラムの - これを明確に浮動含み 小数点値 - それは、C、あなたの場合ことがわかったので、 別のintで、intを割り、 あなたが取得しようとしている結果の答えは 自体INT、たとえその手段 すべてのものを捨てた 小数点以下。 言い換えれば、私は、この5.0に変更した場合 5または、この9.0から9および再保存 私のプログラムはCに加えたFで再コンパイルし、 そして、ドット、スラッシュ、Fでそれを再実行 212のように入力中のCと入力するには、 答えは私がするつもりだことに気付く この時間を取得、実際には非常に間違っている。 0.0は、正しい学位ではありません 212華氏として摂氏。 さて、何が起こっているの? さて、9行目では、5は今なので、 整数および9は今理由 整数、結果は数学的に というように0.5555であるべきで。 しかし、その結果ので、による Cのルールは、int型でなければならないこと 0.5555は、捨てれます ちょうど0で私たちを残して。 だから最後に、私は、乗算してしまう 全く偶然に0回Fマイナス どんなはない32.0、 いつも私に0を与えるつもり。 だから使用して、心の中の任意の時間を保つか 近傍の浮動小数点値 int型は、必ずしもしない場合があります あなたが期待するような答えを得る。 私が行ったようにので、使用するように注意してください 最初のケースで、浮動小数点値 全体でこのような問題を回避する。