'double' から 'int' への変換です。データが失われる可能性があります。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Ultimate

'double' から 'int' への変換です。データが失われる可能性があります。

#1

投稿記事 by Ultimate » 14年前

BCCからVisual Studioに乗り換えたのですが、

'double' から 'int' への変換です。データが失われる可能性があります。

が大量に出てきます。

BCCでは何も表示されてなくて気にしてなかったのですが・・・

これは修正すべきでしょうか?

ほとんどが

DrawCircle(x座標,y座標,~略~);

のところでx座標,y座標がdouble型であるのにエラーが出ているようです。

これをintに直すとサインコサインもintにしたりなどしなければならないのですが、ご指導のほどよろしくお願いします!

Ultimate

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#2

投稿記事 by Ultimate » 14年前

追加ですが、プロジェクトをまとめたフォルダの容量がなんと84メガほどもあります。

すごく大きい気がするのですがこんなものでしょうか?

BCCでは19メガだったので・・・

できたらこちらのほうにも回答お願いします。

たかぎ

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#3

投稿記事 by たかぎ » 14年前

警告の意味を考えましょう。
警告を黙らせることを目的化してはなりません。

あと、プロジェクトのサイズについては、中間ファイルを消していないのが原因かと思います。

ISLe

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#4

投稿記事 by ISLe » 14年前

> 追加ですが、プロジェクトをまとめたフォルダの容量がなんと84メガほどもあります。

インテリセンスのデータベースが大きいのでは?
BCC Developerにはインテリセンス機能は無いですし。
2010ではMSSQLを使うようになったそうですから同じ内容でも以前のバージョンより大きくなると思います。
未確認ですけどインテリセンスを無効にしたらデータベースファイルが作られないかもしれません。

Ultimate

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#5

投稿記事 by Ultimate » 14年前

とりあえずDebugなどのファイルとSQLの拡張子sdfファイルを削除したら200KB位になりました。
インテリセンスの無効にする方法を今設定の中から探してます。

>警告の意味を考えましょう。
>警告を黙らせることを目的化してはなりません。
今回の場合は特に問題は出ていないので、doubleがintになってもデータは失われなかったということでいいのでしょうか?
これからはもう少し意味を考えながら警告を読みます。

box

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#6

投稿記事 by box » 14年前

そもそも、

>DrawCircle(x座標,y座標,~略~);

この関数を含むプログラムで扱っている座標値は浮動小数点数ですか?整数ですか?

Ultimate

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#7

投稿記事 by Ultimate » 14年前

浮動小数点数です。整数ではないです。

五反田

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#8

投稿記事 by 五反田 » 14年前

多分DXライブラリの関数のことなんだと思いますが、

int DrawCircle( int x , int y , int r , int Color, int FillFlag ) ;
(http://homepage2.nifty.com/natupaji/DxL ... .html#R2N3)

となっているので、int型へのキャストが起きて、渡されたdouble型変数の小数部分が四捨五入か、
切り捨てまたは切り上げが起きているんだと思います。

なので、小数部分が関数に渡されないことを警告しているのでは?

bbcs

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#9

投稿記事 by bbcs » 14年前

たいした問題では無いので無視してかまいません

どうしても気になるなら
警告の出るDraw~関数をオーバーロードしてしまいましょう

Ultimate

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#10

投稿記事 by Ultimate » 14年前

無視していいならそうします。

ありがとうございました。

mixCでもよろしくお願いします!!!

たかぎ

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#11

投稿記事 by たかぎ » 14年前

> 無視していいならそうします。

その部分だけを見て、無視してよいかどうかは判断できないと思います。
実際に取りうる値の範囲がどうなるのかぐらいは考慮する必要があります。

Ultimate

Re:'double' から 'int' への変換です。データが失われる可能性があります。

#12

投稿記事 by Ultimate » 14年前

ありがとうございます。

値を見たところ、敵の発射する弾の座標が微妙にずれるだけなので問題はないです。

勉強になりました。

閉鎖

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