PHP将我的浮点数转换为数组中的整数

Anu*_*jan 0 php arrays integer rounding

我有这个代码:

  $val = (float) $desc;
  if (!isset($runepage['statistics'][$key])) {
        $runepage['statistics'][$key] = (float) 0.0;
  }
  $runepage['statistics'][$key] += $val;
Run Code Online (Sandbox Code Playgroud)

$val浮在哪里.

但是当我在最后打印出数组时,所有值最终都是整数.例如,如果相同的是1.5,1.5,1.5 $key,则打印3而不是4.5.

我不确定为什么会这样做.

编辑:这是数组的输出

[statistics] => Array
    (
        [magic penetration] => 9
        [ability power per level] => 9
        [movement speed] => 3
        [magic resist] => 9
    )
Run Code Online (Sandbox Code Playgroud)

Kor*_*nel 5

对不起,我误解了你的问题,假设它$key是浮动的.

如果$val- 我不知道.它应该适用于值,因此问题的根源可能在其他地方.在PHP中,将整数和浮点数一起添加是安全的,结果将是浮点数.


如果$key是浮动:

这是正常的,记录在案的行为.数组不应该由浮点索引.

同样具有数字的字符串也会转换为整数.$a[5] === $a['5'].

不幸的是,PHP数组不是通用的键值存储.您最好的选择是将键序列化为不以数字开头的字符串.