DOBON.NETお気楽掲示板

ツリー一括表示

Nomalアイコン Floorの謎 /ぴち (13/08/21(Wed) 14:42) #1527
Nomalアイコン Re[1]: Floorの謎 /もりお (13/09/04(Wed) 20:41) #1529
  └Nomalアイコン Re[2]: Floorの謎 /ぴち (13/09/18(Wed) 13:17) #1530 解決み!


親記事 / ▼[ 1529 ]
■1527 / 親階層)  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なんでしょう?


[ □ Tree ] 返信 削除キー/

▲[ 1527 ] / ▼[ 1530 ]
■1529 / 1階層)  Re[1]: Floorの謎
□投稿者/ もりお -(2013/09/04(Wed) 20:41:00)
  • アイコンNo1527に返信(ぴちさんの記事)

    Double型で扱える範囲はIntegerで扱える範囲やLongで扱える範囲よりも大きいものです。
    Floor関数はDouble型の値の整数部を返すものなので、その戻り値はIntegerやLongでは収まりきらないことがあります。
    なのでFloor関数の戻り値はDouble型なのだと思います。はい。
[ 親 1527 / □ Tree ] 返信 削除キー/

▲[ 1529 ] / 返信無し
■1530 / 2階層)  Re[2]: Floorの謎
□投稿者/ ぴち -(2013/09/18(Wed) 13:17:20)
  • アイコンNo1529に返信(もりおさんの記事)
    > ■No1527に返信(ぴちさんの記事)


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

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

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

解決み!
[ 親 1527 / □ Tree ] 返信 削除キー/


Pass/


- Child Tree -