このページの3.7章(http://dixq.net/g/03_07.html)についての質問です。
本当に初歩的でくだらない簡単な事かと思いますが、分からないところがあるのです。
このページのソースコード中に
angle = GetRand(10000)/10000.f * (PI*2); //0~PI*2の乱数を生成
speed = 0.5f + GetRand(10000)/10000.f * 2; //0.5~2.5の乱数を生成
とありますが、この抜き出したソース一行目の「10000.f」と二行目の「0.5f」と「10000.f」にくっついている「f」がありますよね?
これって、何の意味があるんですか?取ってコンパイルしてみたら変な風になってしましました。
ご解答よろしくお願いします。
3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
C/C++のデータ型に整数型と浮動小数点型があるのはご存知でしょうか?
それと暗黙の型変換と言うものは御存知ですか?
それと暗黙の型変換と言うものは御存知ですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
キョロキョロ
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
すいません、まだまだ初心者なのでよく分からない事が多いです。
整数型と浮動小数点型があるのはわかるんですが、「浮動」の意味がよく分からないです。
あと、暗黙の型変換はたしかint型の計算の答えが少数になったらdouble型に勝手に変えられちゃう(?)みたいな事だったと思っています
整数型と浮動小数点型があるのはわかるんですが、「浮動」の意味がよく分からないです。
あと、暗黙の型変換はたしかint型の計算の答えが少数になったらdouble型に勝手に変えられちゃう(?)みたいな事だったと思っています
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
整数型と違い、浮動小数点型(float,double)は少数以下と巨大な数値を扱えます。これが一番違います。
定数は10.0fと数値の最後にfをつけるとfloat型、10.0とするとdouble型、10でint型です。
「データ型」
http://www.kusa.ac.jp/~kajiura/c/data/newpage1.htm
fを取った時に問題が出たそうですが、どんな式にしたのか教えて下さい。暗黙の型変換が関係している可能性があります。
定数は10.0fと数値の最後にfをつけるとfloat型、10.0とするとdouble型、10でint型です。
「データ型」
http://www.kusa.ac.jp/~kajiura/c/data/newpage1.htm
fを取った時に問題が出たそうですが、どんな式にしたのか教えて下さい。暗黙の型変換が関係している可能性があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
キョロキョロ
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
angle = GetRand(10000)/10000 * (PI*2); //0~PI*2の乱数を生成
speed = 0.5 + GetRand(10000)/10000.* 2; //0.5~2.5の乱数を生成
こうしました。
それで質問を投稿した後に、自分でも再度よく考えてみたんですが、ひょっとして、「f」を取ってしまうと本来少数の入るはずの無いint型に少数がはいるから変な風になるのではないでしょうか?(説明下手ですみません><)
speed = 0.5 + GetRand(10000)/10000.* 2; //0.5~2.5の乱数を生成
こうしました。
それで質問を投稿した後に、自分でも再度よく考えてみたんですが、ひょっとして、「f」を取ってしまうと本来少数の入るはずの無いint型に少数がはいるから変な風になるのではないでしょうか?(説明下手ですみません><)
-
キョロキョロ
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
こうでしたキョロキョロ さんが書きました:angle = GetRand(10000)/10000 * (PI*2); //0~PI*2の乱数を生成
speed = 0.5 + GetRand(10000)/10000* 2; //0.5~2.5の乱数を生成
こうしました。
それで質問を投稿した後に、自分でも再度よく考えてみたんですが、ひょっとして、「f」を取ってしまうと本来少数の入るはずの無いint型に少数がはいるから変な風になるのではないでしょうか?(説明下手ですみません><)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
一部がint型で演算された為に少数以下が切り捨てられたものと思われます。割り算をint型でしてますからね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
キョロキョロ
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
返信送れてすみません。
何となく分かった気がします。ありがとうございます。
あと、もう一つなんですが、「PI」を宣言するときに「3.1415926f」としますが、この「f」はfloat型という意味ですか?
何となく分かった気がします。ありがとうございます。
あと、もう一つなんですが、「PI」を宣言するときに「3.1415926f」としますが、この「f」はfloat型という意味ですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
上にも書いた通りfはfloat型の定数です。紹介したページを読んでみて下さいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。