Умножение числа с плавающей точкой на -1.0 приводит число к int - PullRequest
0 голосов
/ 29 мая 2019

Когда у меня есть десятичное число и я пытаюсь сделать его отрицательным, оно преобразует число в целое число.В тестовом коде $myl->point_spread равно 1.5.

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

Вот вывод:

Точечный разброс: -1 и 1,5

Я также пытался -$myl->point_spread и 0 - $myl-point_spread безрезультатно.

Так что дает?Как я могу получить правильное значение -1.5, которое я ожидаю?

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

В комментариях вы пишете, что $ myl-> point_spread является объектом SimpleXMLElement.Попробуйте разыграть это значение с плавающей точкой:

echo "Point spread: " . (((float)$myl->point_spread) * -1.0) . " and " . $myl->point_spread . "\n";
0 голосов
/ 29 мая 2019

Как отмечали другие полезные комментарии, print_r или vardump показывают, что это не было примитивное плавание, как я ожидал.Использование floatvar ($ myl-> point_spread) * -1.0 дает ожидаемый результат.Спасибо всем.

...