Может быть кто объяснит - почему '-0'?

  • Автор темы Автор темы bit_immo
  • Дата начала Дата начала

bit_immo

Guest
Может быть кто объяснит - почему '-0'?

Привет, All!
Может быть кто объяснит - почему при умножении _вещественных_ чисел на 0 - php возвращает - '-0'?
<?
$a=-1111.2;
$b=$a*0;
echo $b."\n";
?>
 
поправка - _вещественных отрицательных_.

-~{}~ 15.08.05 10:48:

Если это бага - я думаю ее стоит в фак вынести. Сам на нее чисто случайно наткнулся.
 
мда. что то не то в php с float
<?
$a=-1111.2;
$b=$a*0;
printf("%e\n",$b);
?>
только это надо не в фак а баг-репорт
 
теоретически при умножении 0 * - xxx должно быть 0

но, в курсе высшей математики, что-то помниться есть понятие -0, т.е. бесконечно маленькое число по левой стороне числовой оси. Может решили его заложить в PHP
 
Alexandre
ты не путаешь с пределами справа и слева ? там +0 и -0 всего лишь обозначения.
 
float(0) != int(0)
из-за того как хранятся числа в компьютере, точность чисел с плавающей точкой - условная.
и 3, на самом деле может быть 2.999999999999999999999999, а 0 - 0.000000000000000000000000000000000000000000000000000000001.

RTFM: [m]float[/m]
 
тоесть, вышло что число -1111.2 на 0 - у нас получилось предельно маленькое число меньше нуля?

Разве не будет 0 - если мы любое число умножим на 0?
 
bit_immo ты эту свою последнюю реплику написал до того, как прочёл последний ответ или после?
 
после. :) все понятно - нужно быть предельно аккуратным с числами с плавающей точкой... float(0) и int(0) - может не равняться, но не всегда.
 
Сверху