ページ 1 / 1
int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月08日(月) 19:21
by PUMP
独学でアクションゲームを作ろうと思ってるのですが、x座標、y座標などの変数はfloatを使った方がいいと聞きました。
実際に使ってみると、「 'float' から 'int' への変換です。データが失われる可能性があります。」と出てしまいます。
DrawGraphの因数がint型なのに、引数にfloat型の変数を使っているのがいけないようなのですが...
これをエラーが出ないようにするには、どのようにすればいいのでしょうか?
Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月08日(月) 19:29
by みけCAT
フォーラムルール さんが書きました:
環境に依存する場合やライブラリを使っているときは
使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。
コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう 。
試していませんが、キャストすればいいかもしれません。
↓
コード:
DrawGraph((int)x, ...
みたいな感じで。
オフトピック
「int型の引数」という前提なので、Fの付いた引数がfloat型の関数があってもここでは関係ないですね。
Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月08日(月) 19:39
by usao
コンパイラを黙らせるだけならキャストでいいでしょうけど,
わざわざfloatで扱っている理由があるのでしょうから
じゃあそのfloat値を「どのようにしてintに変換すべきか」という話も当然あると思われる
→その方法で変換してからDrawGraphとかいうのに渡せばよいのでは.
Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月08日(月) 21:10
by プラム
それは、「エラー」ではなく、「警告」ですね
int型は、整数を表すための型ですが、float型は、
少数小数まで表せる型です、型の種類が違うので、一部のデータが変更されたり。データが失われたりする可能性があるという事を言ってるのです、
例えば、
「flaot x=2.48499498」という変数があったとしたら、それをint型へ変換すると。
「x=2」となります(小数のくらいは表せないのでこのように変換されたのです)
例えば、座標のx,yの変数を引数にする場合は。
コード:
float x,y;
DrawGraph( (int)(x) (int)(y) .../*以下省略*/);
と供述すると、コンパイラさんには何も言わなくなると思います。
Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月08日(月) 21:46
by 超初級者
少数じゃなくって小数ね。
間違えやすいけど。
Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?
Posted: 2016年2月11日(木) 12:57
by プラム
超初級者 さんが書きました:少数じゃなくって小数ね。
間違えやすいけど。
すいません。「少数」ではなく「小数」ですね、漢字が似ているので間違えやすいですよね、
一文字違うと全く意味は違いますが。
編集しときます。w