パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

スラドに聞け:いま使っている言語の仕様、把握している?」記事へのコメント

  • 十数年仕事で(アマ時代を入れると20年以上)使っていたのに知らなかったので数日はまった。

    バグったコードからエラー原因を簡素化したテストコードは以下。
    float型(i)とint型(k)で1ずつ加算していって異なったら
    標準エラーに出力。 

    #include <stdio.h>
    int main(){
      float i;
      int k;
      i=0;
      for(k=0;k<=16777217;k++){
        if(k != (int)i) fprintf(stderr,"%i %i\n",k,(int)i);
        i += 1;
      }
      return 0;
    }

    • by Anonymous Coward

      えー常識だと思っていたけどな
      計算機イプシロンとかその辺で出てくる話題だと思た

      • by Anonymous Coward

        計算機的な講義(世代により中学なり大学なり新人研修だったりするだろうけど)でイの一番に習いそうだけど。

        • by Anonymous Coward

          浮動小数のバックグランドを知らない人間に浮動小数を扱わせてはいけない、の実例。

          • Z80用の単精度浮動小数点ライブラリを自分で書いてみたクチだから、どれくらい浮動小数点での加減算が信用できない(精度が足りなくなる)か身に染みて分かる。
            今は浮動小数点形式の構造ばかりか、スタックの構造やらポインタ、果てはデータのメモリ内での記憶方法なんぞを知らなくても良い時代になったと思えばいいのかなあ。

            • by Anonymous Coward

              今はNCデータが割と身近にある仕事してるんだけど、それに慣れてると、小数はぜんぶ1000倍して常に整数で持たせたくなる。モノはでかくても4mくらいだし。

              • なぜ1024倍でないのか?

              • by Anonymous Coward

                0.001mm を 1024倍して何が嬉しい?

              • 二進数の整数で扱うなら、1000倍より1024倍の方が計算が簡単なんだけど、知らない?

                二進化十進数なら話は別だと思うけど。

              • by Anonymous Coward

                NCデータがどういう情報かはご存知ですか?

                # 相変わらずな御仁だなあ

              • NCデータがどういう情報かはご存知ですか?

                しりませんが、それが何か?
                通常、浮動小数点で扱ってる数値データなんでしょ?
                それを、固定小数点で扱いたい、って話なんでしょ?
                何か問題でも?

                # 相変わらずな御仁だなあ

                そしてキミからは、具体的には何の反論も出てこない、という相変わらずさじゃ無いといいけど。

              • NCデータと通常称されるものは、NC工作機械に入力されるテキストデータ。
                テキストデータなので浮動小数点も固定小数点もない。
                それを読み取ったCNC側が内部でどう扱っているかは別問題としてあるが、
                通常外部に公開されていない。

                また"G91X1;"と"G91X1.;"が同じ動きをするかどうかは設定次第。
                よくある設定だと小数点抜きの場合um単位、小数点をつけるとmm単位の指令と解釈される。
                三菱のCNCなら"#1015 cunit プログラム指令単位"の設定内容を確認する。

                そもそも別の設定項目でメトリック系とインチ系が切り換えられたりするから、
                NCデータ単体では各数値の表す意味は不明。

                # 組み込みマクロにSINとかあるけど精度調べたことなかったなあ。
                # 計算精度より先に位置決め精度のほうが頭打ちになる機械ばかりだしどう確認しよう。

                親コメント
              • NCデータと通常称されるものは、NC工作機械に入力されるテキストデータ。
                テキストデータなので浮動小数点も固定小数点もない。

                つまり、二進化十進数 [wikipedia.org]ってことね。
                既に書いた [srad.jp]通り、それなら話は別。

                で、機械に食わせる二進化十進数を1000倍して小数点を無くすかずらすかして、何か嬉しいの?
                小数点以下の0が9個以上連続する、とかなら判らんでもないけど、3個くらいなら人間が手を加えるにしても、大した話じゃ無いと思うけど。

                数点抜きの場合um単位、小数点をつけるとmm単位

                「um」って、「μm」のこと?
                そっちの業界では、そー書くの?

                そもそも、マイクロメートルを扱えるなら、そうすればいいだけじゃん、と思うけど、違うの?

                親コメント

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

処理中...