ページ 11

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(x, ...

コード:

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