将浮点数乘以-1.0会将数字强制转换为整数

时间:2019-05-29 11:34:34

标签: php casting decimal

当我有一个小数并尝试使其为负数时,它将数字转换为整数。在测试代​​码中,$myl->point_spread1.5

echo "Point spread: " . ($myl->point_spread * -1.0) . " and " . $myl->point_spread . "\n";

以下是输出:

  

点差:-1和1.5

我也尝试了-$myl->point_spread0 - $myl-point_spread无济于事。

那有什么用呢?如何获得期望的-1.5的正确值?

2 个答案:

答案 0 :(得分:0)

正如其他有用的评论所指出的那样,print_r或vardump揭示了它不是我所期望的原始浮点数。使用floatvar($ myl-> point_spread)* -1.0可获得预期结果。谢谢大家。

答案 1 :(得分:0)

在注释中,您写道 $ myl-> point_spread 是一个SimpleXMLElement对象。 尝试将该值强制转换为浮动值:

echo "Point spread: " . (((float)$myl->point_spread) * -1.0) . " and " . $myl->point_spread . "\n";