2013-05-09 98 views

回答

10

使用round()

$float_val = 4.5; 

echo round($float_val); 

您還可以設置精度和舍入模式PARAM,爲more info

更新(根據您的更新問題):

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

輸出得到1,而不是100001246680920 – sajith 2013-05-09 07:47:26

+0

是,輸出打印1 – sajith 2013-05-09 07:49:11

+0

@sajith你希望你的浮點數四捨五入,所以指數值將使它爲201而不是20 – 2013-05-09 07:49:16

22

你是什麼意思轉換?

  • 鑄造*:(int) $floatintval($float)
  • 截斷:floor($float)(向下)或ceil($float)(上)
  • 四捨五入:round($float) - 有額外modes,看PHP_ROUND_HALF_...常數

*:鑄造有一定的機會,浮動值不能repres int(太大或太小),f.ex.在你的情況。

PHP_INT_MAX:此構建的PHP支持的最大整數。通常是int(2147483647)。

但是,您可以使用BCMathGMP擴展名來處理這些大數字。 (兩者都是綁定的,你只需要啓用這些擴展)

+0

所以我可以獲得整數表示爲字符串例如:(字符串)「100001246680920」 – sajith 2013-05-09 08:12:59

+0

舍入或截斷,你會得到一個浮點數。有了這些擴展,你可以像字符串一樣處理它。 – pozs 2013-05-09 08:14:46