戻る

floatの自動変換の警告対応

「Deprecated: Implicit conversion from float 269.6461271075689 to int loses precision in ・・・」の形式の警告の対応の為に「(int)」による型キャストで対応しました。

以下のコードは、方角の0-360℃を「NEWS」の組み合わせの表示に変換するような内容でのサンプルです。

// -------------------------------------------------------------------------
//  0-360℃をNEWSの組み合わせの文字に変換
// -------------------------------------------------------------------------
// 2024-10-02 PHP8.1での警告表示に対応
//            警告表示の例)
//            Deprecated: Implicit conversion from float 315.45 to int loses precision in ・・・
 
function WindDirConv2NEWS($d) {
    //              0   1     2     3    4    5    5    7
    $news = array("N","NNE","NE","ENE","E","ESE","SE","SSE"
    //              8   9     10   11    12  13    14   15
                  ,"S","SSW","SW","WSW","W","WNW","NW","NNW");
 
 
    # vvvvv  del 2024-10-02 vvvvv
    #$idx = (($d-360/32) + 360 / 16) % 360 / (360/16);
    #return $news[floor($idx)];
    # ^^^^^  del 2024-10-02 ^^^^^
 
    # vvvvv  add 2024-10-02 vvvvv
    $idx = (int)(($d-360/32) + 360 / 16) % 360 / (360/16);
    return $news[(int)$idx];
    # ^^^^^  add 2024-10-02 ^^^^^
 
}