DOBON.NETお気楽掲示板

[ 最新記事及び返信フォームをトピックトップへ ]

■1527 / inTopicNo.1)  Floorの謎
  
□投稿者/ ぴち -(2013/08/21(Wed) 14:42:32)
  • アイコン環境/言語:[Windows7, VB.NET(2010 Express)] 
    分類:[.NET]

    つまらない疑問でごめんなさい。

    以下の様なコードを記述した場合

    Dim w_int As Integer
    w_int = Math.Floor(10 / 3)

    Debug.Print(w_int.ToString)


    w_int = Math.Floor(10 / 3)の部分で
    以下の警告が表示されます。

    'Double' から 'Integer' への暗黙の型変換です。


    Floorの説明を見ると

    指定した10進数以下の数のうち、最大の整数を返します。

    とあります。整数を返すのに何故戻り値がDoubleなんでしょう?


引用返信 削除キー/
■1529 / inTopicNo.2)  Re[1]: Floorの謎
□投稿者/ もりお -(2013/09/04(Wed) 20:41:00)
  • アイコンNo1527に返信(ぴちさんの記事)

    Double型で扱える範囲はIntegerで扱える範囲やLongで扱える範囲よりも大きいものです。
    Floor関数はDouble型の値の整数部を返すものなので、その戻り値はIntegerやLongでは収まりきらないことがあります。
    なのでFloor関数の戻り値はDouble型なのだと思います。はい。
引用返信 削除キー/
■1530 / inTopicNo.3)  Re[2]: Floorの謎
□投稿者/ ぴち -(2013/09/18(Wed) 13:17:20)
  • アイコンNo1529に返信(もりおさんの記事)
    > ■No1527に返信(ぴちさんの記事)


    ふおぉぉぉぉぉ!そりゃそうですよね。

    2147483648.1を切り捨ててInteger型に代入しようとすると
    2147483647を超えちゃいますもんね。

    ちょっと考えりゃ判ることなのに、全然気づきませんでした。
    目から鱗が落ちました。ありがとうございます。

解決み!
引用返信 削除キー/



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

このトピックに書きこむ

Pass/


- Child Tree -