2013-05-09 19 views

risposta

10

Usa round()

$float_val = 4.5; 

echo round($float_val); 

È inoltre possibile impostare param per la precisione e la modalità di arrotondamento, per more info

aggiornamento (secondo la vostra domanda aggiornato):

$float_val = 1.0000124668092E+14; 
printf('%.0f', $float_val/1E+14); //Output Rounds Of To 1000012466809201 
+0

out put ottenendo 1, non 100001246680920 – sajith

+0

sì, out put printing 1 – sajith

+0

@sajith Vuoi che il tuo float si concluda, quindi il valore esponenziale lo renderà 201 e non 20 –

22

Che cosa si intende per la conversione?

  • fusione *: (int) $float o intval($float)
  • troncando: floor($float) (giù) o ceil($float) (su)
  • arrotondamento: round($float) - ha aggiuntiva modes, vedere PHP_ROUND_HALF_... costanti

*: il casting ha qualche possibilità, che i valori float non possono essere rappresentati inserito in int (troppo grande o troppo piccolo), es. nel tuo caso.

PHP_INT_MAX: Il numero intero maggiore supportato in questa build di PHP. Di solito int (2147483647).

Tuttavia, è possibile utilizzare le estensioni BCMath o GMP per gestire questi numeri grandi. (Entrambi sono limitati, è sufficiente abilitare queste estensioni)

+0

così posso ottenere la rappresentazione intera come stringa ad esempio: (stringa) "100001246680920" – sajith

+0

con arrotondamento o troncamento, si ottiene un valore float.con queste estensioni, puoi gestirlo come stringhe. – pozs

Problemi correlati