C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

全問 暗算で正解したらすごい! floatの精度について


(過去ログ 69 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■40343 / inTopicNo.1)  全問 暗算で正解したらすごい! floatの精度について
  
□投稿者/ ふくちゃん (50回)-(2009/08/24(Mon) 12:14:39)

分類:[雑談] 

いつもお世話になっています。

私がコーディング中に気がついた
float型を使用する際の注意するべき精度の問題を
問題形式であげておきます。

.NETのC++でコーディングしております。


以下のプログラムの(1)〜(6)までは、すべて通ると思いますか?
ぱっとみはすべてブレイクポイントを張れば止まりそうですが、
実は止まらない場所があります。

どういう結果になるか想像した後、
一度実行してみて体験してみてください。
ちなみにご存じかとは思いますが、

2.1f はfloat型
2.1 はdouble型

をそれぞれ指します。


お時間があるときに実験してみてください。


float a = 2.1f;
int b = (int)(a*10.0f);
int c = (int)((double)a*10.0);

if(21 == b) {
Sleep(0); // (1)
}

if(21 == c) {
Sleep(0); // (2)
}

if(2.1f == a) {
Sleep(0); // (3)
}

if((float)2.1 == a) {
Sleep(0); // (4)
}

if(2.1 == (double)a) {
Sleep(0); // (5)
}

if(2.1 == a) {
Sleep(0); // (6)
}


予想と実験してみた感想を書き込んでいただければ幸いです。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -