int型の引数をfloat型で入れるにするにはどうすればいいのですか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
PUMP
記事: 23
登録日時: 4年前

int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#1

投稿記事 by PUMP » 4年前

独学でアクションゲームを作ろうと思ってるのですが、x座標、y座標などの変数はfloatを使った方がいいと聞きました。
実際に使ってみると、「 'float' から 'int' への変換です。データが失われる可能性があります。」と出てしまいます。

DrawGraphの因数がint型なのに、引数にfloat型の変数を使っているのがいけないようなのですが...
これをエラーが出ないようにするには、どのようにすればいいのでしょうか?

アバター
みけCAT
記事: 6294
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#2

投稿記事 by みけCAT » 4年前

フォーラムルール さんが書きました: 環境に依存する場合やライブラリを使っているときは

使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。

コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう 。
試していませんが、キャストすればいいかもしれません。

コード:

DrawGraph(x, ...

コード:

DrawGraph((int)x, ...
みたいな感じで。
オフトピック
「int型の引数」という前提なので、Fの付いた引数がfloat型の関数があってもここでは関係ないですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
usao
記事: 1596
登録日時: 7年前

Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#3

投稿記事 by usao » 4年前

コンパイラを黙らせるだけならキャストでいいでしょうけど,
わざわざfloatで扱っている理由があるのでしょうから
じゃあそのfloat値を「どのようにしてintに変換すべきか」という話も当然あると思われる
→その方法で変換してからDrawGraphとかいうのに渡せばよいのでは.

アバター
プラム
記事: 164
登録日時: 6年前
住所: 東海地方

Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#4

投稿記事 by プラム » 4年前

それは、「エラー」ではなく、「警告」ですね

int型は、整数を表すための型ですが、float型は、少数小数まで表せる型です、型の種類が違うので、一部のデータが変更されたり。データが失われたりする可能性があるという事を言ってるのです、

例えば、
「flaot x=2.48499498」という変数があったとしたら、それをint型へ変換すると。

「x=2」となります(小数のくらいは表せないのでこのように変換されたのです)

例えば、座標のx,yの変数を引数にする場合は。

コード:

float x,y;

DrawGraph( (int)(x) (int)(y) .../*以下省略*/);

と供述すると、コンパイラさんには何も言わなくなると思います。
最後に編集したユーザー プラム on 2016年2月11日(木) 12:59 [ 編集 1 回目 ]

超初級者
記事: 54
登録日時: 5年前

Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#5

投稿記事 by 超初級者 » 4年前

少数じゃなくって小数ね。
間違えやすいけど。

アバター
プラム
記事: 164
登録日時: 6年前
住所: 東海地方

Re: int型の引数をfloat型で入れるにするにはどうすればいいのですか?

#6

投稿記事 by プラム » 4年前

超初級者 さんが書きました:少数じゃなくって小数ね。
間違えやすいけど。
すいません。「少数」ではなく「小数」ですね、漢字が似ているので間違えやすいですよね、
一文字違うと全く意味は違いますが。

編集しときます。w

閉鎖

“C言語何でも質問掲示板” へ戻る