2006年01月11日

ケミラボ効果なしの理由予測

Gクレはんがなして自前で回線交換しとるんか謎なよーこやー。
うちもいちおシステムインテグレーターちゅうヨコモジで格好良さそうな会社の設計部門におるで言うんやけれどあんだけの規模でも自前で揃えるもんなんかなー。
データセンターにサーバー設置するんが普通やないの?
それは置いておいて師匠はんの落ち込み方が尋常やないでちと元気付けよか思てケミカルラボについて聞いたんよ。
いつも参考にさせてもろてるTrickster Wikiはんの情報見せてケミカルラボが働いてないか逆向きに働いてるんやないかて話をしたんやけれど。
したらこんな話してくれたわ。
これは某国のプログラムはコンパイル通って正常ケース1個通してOKなら全てOKみたいなノリでコード組んでることがある。
それで以前に某国に下請けさせたら酷い目に遭って結局自分でフルコード書き直す羽目になったことがある。
今回も型キャスト問題で変なことした可能性が考えられる。
ちょっとコード書くと
@int rangeValue = 7;
Aint minValue = 3;
Bdouble rnd = getRand();
Cint kekka = rangeValue*rnd;
Ddouble bai=1.5;
Ekekka = kekka * bai;
Fkekka = kekka + minValue;
これはコンパイルとおらない。
CとEで小数点を整数化したときに精度が落ちるというエラーになる。
だから型キャストして
Cint kekka = (int)(rangeValue*rnd);
Ekekka = (int)(kekka * bai);
としなければならないのだが・・・
左辺と右辺に同じ変数があるときは格好つけて+=や*=なんてのを使ったりするわけだ。
例えばFはkekka += minValue;なんて書いたりする。
今回数値が本当に変わらないのであれば恐らくこんな式を書いたと予測される。
Ekekka *= (int)bai;
これだと1.5という数字が入っているbaiが整数化されて1になってしまい値が変わらない。

なんとなくやけれど切り捨てるときに結果切り捨てるんやなくてケミカルラボの倍率のほう切り捨ててるっちゅうことでいいん?
うちはプログラム読めんけれどここ見とる人でわかる人もおるんやないかと期待や!

それにしてもメンテ中て暇やねー。
posted by よーこ at 14:49| Comment(7) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。