【C#】実数から小数部の取得

くまさん

神社,ダムと温泉好きな「システムアーキテクト」

おすすめ

6件のフィードバック

  1. メロン より:

    少数を取り出すのは
    float a = 123.456 – Math.Truncate(123.456);
    でもよいですね

    余談ですが英語対応のデータロガーソフトを以前作ったとき
    英語環境ではなくドイツ語環境(Wondowsドイツ語版)で使われて誤動作しまくりでした
    よくよく調べると欧州や南米では小数点はピリオド[.]ではなくカンマ[,]が使われており、
    測定器から送られたピリオドのASCII文字をfloat実数に変換する際、エラーになるというものでした

    文字列や数字のフォーマットの不統一ってプログラマーにとってはうっとおしいことこの上ないです
    だれか強力な政治力を発揮して統一して欲しいもんです

  2. くまさん より:

    >>メロン さま

    >>float a = 123.456 – Math.Truncate(123.456);
    あ,ですね.この手も使えますなぁ~

    >>文字列や数字のフォーマットの不統一ってプログラマーにとってはうっとおしいことこの上ないです
    >>だれか強力な政治力を発揮して統一して欲しいもんです

    あ,そうですねぇ~
    ヨーロッパとか,小数のピリオド,カンマですなぁ...

    欧州向けのシステムはまだ,作ったこと無いんで
    不具合に遭遇したことないですけど,気をつけないといかんですね 😉

  3. 匿名 より:

    剰余が実数にも使えるってちょっと許せない気分です。(^^;
    ワシはC言語ばっかだったんでついついキャストでやっちゃいますね。
    float a = 123.456 – (int)(123.456);

  4. くまさん より:

    >>匿名 さま

    キャストもいいですねぇ
    こうしてみると,いろいろ手がありますなぁ

  5. 康ちゃん@まったり~ より:

    キャストとMath.Truncateってどっちが速いのかな?
    剰余算より整数部を引くほうが速そうな気はするけど。

  6. くまさん より:

    >>康ちゃん@まったり~ さま

    う~む,コンパイラの挙動で変わりそうじゃが
    なんとなく,キャストのほうが速そう.インラインコードレベルで片付ける気がする
    Math.Truncateだと,関数が呼ばれそうじゃし

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください