ページ 1 / 1
3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 17:59
by キョロキョロ
このページの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」がありますよね?
これって、何の意味があるんですか?取ってコンパイルしてみたら変な風になってしましました。
ご解答よろしくお願いします。
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:18
by softya(ソフト屋)
C/C++のデータ型に整数型と浮動小数点型があるのはご存知でしょうか?
それと暗黙の型変換と言うものは御存知ですか?
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:30
by キョロキョロ
すいません、まだまだ初心者なのでよく分からない事が多いです。
整数型と浮動小数点型があるのはわかるんですが、「浮動」の意味がよく分からないです。
あと、暗黙の型変換はたしかint型の計算の答えが少数になったらdouble型に勝手に変えられちゃう(?)みたいな事だったと思っています
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:44
by softya(ソフト屋)
整数型と違い、浮動小数点型(float,double)は少数以下と巨大な数値を扱えます。これが一番違います。
定数は10.0fと数値の最後にfをつけるとfloat型、10.0とするとdouble型、10でint型です。
「データ型」
http://www.kusa.ac.jp/~kajiura/c/data/newpage1.htm
fを取った時に問題が出たそうですが、どんな式にしたのか教えて下さい。暗黙の型変換が関係している可能性があります。
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:48
by キョロキョロ
angle = GetRand(10000)/10000 * (PI*2); //0~PI*2の乱数を生成
speed = 0.5 + GetRand(10000)/10000.* 2; //0.5~2.5の乱数を生成
こうしました。
それで質問を投稿した後に、自分でも再度よく考えてみたんですが、ひょっとして、「f」を取ってしまうと本来少数の入るはずの無いint型に少数がはいるから変な風になるのではないでしょうか?(説明下手ですみません><)
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:48
by キョロキョロ
キョロキョロ さんが書きました:angle = GetRand(10000)/10000 * (PI*2); //0~PI*2の乱数を生成
speed = 0.5 + GetRand(10000)/10000* 2; //0.5~2.5の乱数を生成
こうしました。
それで質問を投稿した後に、自分でも再度よく考えてみたんですが、ひょっとして、「f」を取ってしまうと本来少数の入るはずの無いint型に少数がはいるから変な風になるのではないでしょうか?(説明下手ですみません><)
こうでした
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 18:55
by softya(ソフト屋)
一部がint型で演算された為に少数以下が切り捨てられたものと思われます。割り算をint型でしてますからね。
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 19:32
by キョロキョロ
返信送れてすみません。
何となく分かった気がします。ありがとうございます。
あと、もう一つなんですが、「PI」を宣言するときに「3.1415926f」としますが、この「f」はfloat型という意味ですか?
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 20:11
by softya(ソフト屋)
上にも書いた通りfはfloat型の定数です。紹介したページを読んでみて下さいね。
Re: 3.7章(http://dixq.net/g/03_07.html)について何ですが・・・
Posted: 2013年11月02日(土) 20:28
by キョロキョロ
色々と有難うございました。また機会があればよろしくお願いします。