2013-05-09 16 views

Odpowiedz

10

Zastosowanie round()

$float_val = 4.5; 

echo round($float_val); 

można również ustawić param precyzji i tryb zaokrąglania dla more info

Update (Według zaktualizowanego pytanie):

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

out put 1, a nie 100001246680920 – sajith

+0

yes, out put printing 1 – sajith

+0

@sajith Chcesz, aby twój float zaokrąglił, więc wykładnicza wartość sprawi, że będzie to 201, a nie 20 –

22

Co masz na myśli poprzez konwersję?

  • odlewania *: (int) $float lub intval($float)
  • obcinania: floor($float) (w dół) lub ceil($float) (w górę)
  • zaokrągleń: round($float) - ma dodatkowe modes patrz PHP_ROUND_HALF_... stałe

*: rzutowanie ma pewne szanse, że wartości zmiennoprzecinkowe nie mogą być represjami wpisane w int (zbyt duże lub zbyt małe), np. w Twoim przypadku.

PHP_INT_MAX: Największa liczba całkowita obsługiwana w tej wersji PHP. Zwykle int (2147483647).

Ale można używać rozszerzeń BCMath lub GMP do obsługi dużych liczb. (Oba są ograniczone, należy tylko włączyć te rozszerzenia)

+0

, więc czy mogę pobierz całkowitą reprezentację jako ciąg, np: (ciąg) "100001246680920" – sajith

+0

z zaokrągleniem lub obcięciem, otrzymujesz wartość zmiennoprzecinkową.z tymi rozszerzeniami możesz obsłużyć je jak ciągi. – pozs

Powiązane problemy