14歳の自分に衝撃の事実を告げてください

整数型で宣言していて、変換するときにキャスト演算だけで浮動小数点に直すことは、ないのでしょうか?キャスト演算同士(式)で、初めて浮動小数点に直すということでしょうか?教えていただけると嬉しいです。本来のプログラムでデータの型を変換するものではないとはどういう事でしょうか?それと、もう少し詳しく教えていただけると嬉しいです。

質問者からの補足コメント

  • うーん・・・

    int a = 5;
    と宣言し、(double)aとキャストしても、aがdoubleになるわけではなく、評価された値がdoubleになるだけ、という意味でしょうね。
    で、だから、「int型の変数」がdouble型になるわけではないということです。の所を詳しく教えていただけると嬉しいです。すみません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/06/28 18:10

A 回答 (5件)

> 式のときだけキャスト演算で計算するとはどういう事でしょうか


double testd = 3.55
int a = 5;
if(testd == (double)a ){

こういうことでしょうか??
上記の場合はaはint型から変わりませんよという意味でしょうか?
一時的ではなくて変えたければ
double testd = (double)a ;
こうしてね。とか?

間違っていたらすみません。
    • good
    • 0

>本来のプログラムでデータの型を変換するものではないとは


>どういう事でしょうか?

「本来のプログラム」って何?

これでは意味不明なので、その疑問に思った文章全体を
掲載するか、もっと詳しく説明しましょう。

何を見て何に疑問を持ったのかさっぱり伝わってこないです。
    • good
    • 0

> それは、分かります。


「a+1 と書いたからと言って、aの値が変化するわけではない」
というのと、
「(double)a と書いたからと言って、aの値が変化するわけではない」
というのは全く同じ構造です。javascript:void 0;
上がわかって下がわからないと言うことはないはずなので、よく考えましょう。
    • good
    • 0

> 式のときだけキャスト演算で計算するとはどういう事でしょうか


何のことを言ってるのかわかりません。

> だから、「int型の変数」がdouble型になるわけではないということです。の所を詳しく教えていただけると嬉しいです。

「変数の型は変化しない」ということが理解できないのだとすると、「変数」ってどういう概念だと思っているのでしょうか?

a=a+1
だとaの値が1増えるけど、
a+1
と書いてもaの値は変換しないということはわかりますか?

これがわからないとすると、こういうごく基礎的なことを説明するには、説明を聞く相手が何をどう思っているのかを知らないと説明できないので、こういうQAサイトで理解できる説明を求めるのは無理です。対面で(オンラインでも良いですが)、会話のキャッチボールをしながら一歩ずつ歩く必要があります。
    • good
    • 4
この回答へのお礼

それは、分かります。

お礼日時:2023/06/30 05:15

> 整数型で宣言していて、変換するときにキャスト演算だけで浮動小数点に直すことは、ないのでしょうか?



あります。

> キャスト演算同士(式)で、初めて浮動小数点に直すということでしょうか?

これはどういうことを言っていますか?

> 本来のプログラムでデータの型を変換するものではない

誰かに言われたなら、言った人に意味を聞きましょう。他人には意味不明の文章です。
この回答への補足あり
    • good
    • 7
この回答へのお礼

式のときだけキャスト演算で計算するとはどういう事でしょうか?教えていただけると嬉しいです。

お礼日時:2023/06/28 17:49

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


おすすめ情報