ホームページ  >  に質問  >  本文

float (数値) から int への暗黙的な変換では精度が失われます

私はphp 8.1より前にこの式を使用しました

リーリー

正常に動作しましたが、アップグレード後も次のエラーが発生し続けます

リーリー

8.1 のドキュメントを読んでも、なぜ今このようなことが起こっているのかわかりません。

P粉449281068P粉449281068384日前876

全員に返信(2)返信します

  • P粉043295337

    P粉0432953372023-10-22 12:07:10

    // Implicit variant
    $number= "2";
    $calc = 2 + $number;
    
    // Cast variant
    $number = "2";
    $calc= 2 + (int) $number;
    
    // Explicit variant
    $number = "2";
    $calc = 2 + intval($number);
    
    // Everything is good variant ^^
    $number = 2;
    $calc = 2 + $number;

    返事
    0
  • P粉211600174

    P粉2116001742023-10-22 10:41:26

    | 演算子を介してビット単位の OR 演算を実行すると、暗黙的に整数に変換されます。これは、整数に変換する...奇妙な...方法です。警告を回避するには、明示的にキャストするだけです。

    ###暗黙:### リーリー

    関数を明示的に渡します:

    リーリー

    またはキャスト経由:

    リーリー

    返事
    0
  • キャンセル返事