intへキャスト


たく  2012-05-06 05:26:44  No: 73362

int val;
double area;

area = 188.8;
val = (int)(area * 100);

とした場合、
val = 18879 になってしまいます。

この書き方は、まずいんでしょうか?


επιστημη  URL  2012-05-06 08:09:43  No: 73363

そんなもんでしょ。

0.1の10倍は1にはならないとおもってた方がいい。


PATIO  2012-05-11 01:46:36  No: 73364

コンピューターで小数点以下の値を表現しようとすると誤差が発生するというその辺の話を調べてみた方がよいと思います。
整数の範疇で計算する分には良いんですけれど、
小数点以下が絡むと話がとたんに変わってきます。

コンピュータに計算させるときは必ずこの誤差を意識する必要があります。

わりと有名な話なのできちんと理解しておいたほうが良いですよ。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加