アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のプログラムで、キャスト演算とは、データの型を変換して、計算すること。で合っているのでしょうか? で、一時的に型変換が行われるが、本来のプログラムのデータの型を変換するものではないとはどういう事でしょうか?教えていただけると嬉しいです。
式のときだけという事は、つまり、(float)Total/(float)Countの時だけという事でしょうか?教えていただけると嬉しいです。

「キャスト演算について。」の質問画像

A 回答 (1件)

>式のときだけという事は、つまり、(float)Total/(float)Countの時だけという事でしょうか?


(inpTotalをTotal、inpCountをCountと表現すると理解しました)

はい、その通りです。
もし、Total=13 Count=5の場合、
(float)Total/(float)Countの値は、float型の13.0/float型の5.0となり
heikin=2.6となります。

>一時的に型変換が行われるが、本来のプログラムのデータの型を変換するものではないとはどういう事でしょうか?

(float)Total/(float)Count の演算を行っても
Totalの型がfloat型に変わるわけではありません。int型のままということです。Countについても同様です。

尚、何故、キャストを行うかということですが、
キャストをしないと
heikin=Total/Count;
になります。この場合、int型同士の演算なので、Total=13、Count=5のとき、小数点以下が切り捨てられ、結果はheikin=2.0となります。
これを防止するためにキャストを行っています。
2.0の結果がほしいなら、キャストする必要はありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A