2011-06-06 33 views
1

我想顯示一個數字作爲勝率,類似於您在ESPN棒球榜上看到的數字。如果用戶沒有損失,我希望百分比讀數爲1.000。如果用戶沒有勝利,我希望它讀取.000。如果用戶有勝負混合,我想要顯示.xyz,即使y或y和z是0。在PHP中舍入小數點

此代碼讓我沒有尾隨0的,也是0的小數之前(而不是0.4。400的,而不是0.56 0.560):

$wpct1 = $wins/($wins + $losses); 
if($wpct1 == 1){$wpct = '1.000';}else{$wpct = round($wpct, 3);} 

這段代碼獲得初始0 befoer小數出還有,但仍然沒有尾隨零(.4而不是0.400):

$wpct1 = $wins/($wins + $losses); 
if($wpct1 == 1){$wpct = '1.000';}else{$wpct = substr(round($wpct, 3), 1, 4);} 

第二個解決方案是讓我更接近的地方,我想,我將如何去有關添加尾隨0的具有附加一段代碼(一個或兩個預告片,取決於小數),還是有另一種方法來使用圓/ substr會自動執行它?

+0

我相信你正在尋找使用http://php.net/manual/en /function.number-format.php – 2011-06-06 20:30:18

回答

2
$wpct = ltrim(number_format($wins/($wins + $losses), 3), '0'); 

這將對數小數點後三位數,並刪除任何前導零。

參見number_formatltrim作進一步參考。

+0

謝謝,我會試試這個! – Erik 2011-06-06 20:35:14

+0

演示:http://codepad.viper-7.com/yxiBGt – NikiC 2011-06-06 20:36:08

1

你需要

number_format($wpct, 3)
1

你可以使用str_pad()添加尾隨零這樣的:

if($wpct1 == 1){$wpct = '1.000';}else{$wpct = str_pad(substr(round($wpct, 3), 1, 4), 3, '0');}