View Full Version : [PHP] round(-0.2) = -0. Perchè???
Salve ragazzi.....avrei una domanda. Perchè in php
round(-0.2) = -0
io vorrei 0 e non -0 !!!!!!!!!!!!!!!!!!
risolto.
(int)round(-0.2) = 0
cmq sarebbe bello sapere perchè senza il cast esplicito da -0....forse perchè lo tratta ancora come float....
Supdario
15-12-2010, 23:19
Sì, la funzione "round" prende come parametro un float e restituisce un float, e come forse sai i float si possono rappresentare anche come +0 e -0.
Sì, la funzione "round" prende come parametro un float e restituisce un float, e come forse sai i float si possono rappresentare anche come +0 e -0.
Esatto.
Puoi usare anche
intval(round(-0.2))
Infatti me lo ero immaginato.....ma a che pro restituire -0 ??
Supdario
16-12-2010, 10:46
Infatti me lo ero immaginato.....ma a che pro restituire -0 ??
E' più che altro una cosa tecnica della FPU... In teoria dovrebbe indicare che un numero molto piccolo negativo è stato arrotondato a 0 (ad esempio -0.000000000000000000000001 verrebbe arrotondato a -0).
Per maggiori info guarda qui:
http://en.wikipedia.org/wiki/Signed_zero
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.