我希望将一个数字显示为胜率,类似于你在ESPN棒球榜上看到的数字。如果用户没有损失,我希望百分比读为1.000。如果用户没有获胜,我希望它能读取.000。如果用户混合输赢,我想显示.xyz,即使y或y和z为0。
这段代码没有给出0的跟踪,也是小数点前的0(0.4而不是.400,0.56而不是.560):
$wpct1 = $wins / ($wins + $losses);
if($wpct1 == 1){$wpct = '1.000';}else{$wpct = round($wpct, 3);}
此代码获取初始0 befoer的小数,但仍然没有尾随零(.4而不是.400):
$wpct1 = $wins / ($wins + $losses);
if($wpct1 == 1){$wpct = '1.000';}else{$wpct = substr(round($wpct, 3), 1, 4);}
这第二个解决方案是让我更接近我想要的位置,我将如何使用额外的代码(一个或两个预告片,取决于小数)添加尾随0,或者是否有另一种方法使用round / substr会自动执行吗?
答案 0 :(得分:2)
$wpct = ltrim(number_format($wins / ($wins + $losses), 3), '0');
这格式化小数点后三位数的数字并删除任何前导零。
有关详细信息,请参阅number_format
和ltrim
。
答案 1 :(得分:1)
sprintf('%04d',$wpct1);
将打印前导零
答案 2 :(得分:1)
你需要
number_format($wpct, 3)
答案 3 :(得分:1)
您可以使用str_pad()添加这样的尾随零:
if($wpct1 == 1){$wpct = '1.000';}else{$wpct = str_pad(substr(round($wpct, 3), 1, 4), 3, '0');}
答案 4 :(得分:0)
听起来像number_format就是你要找的东西。
答案 5 :(得分:0)
$x = 0.4;
echo sprintf("%01.3f", $x);
答案 6 :(得分:0)
您可以使用内置number_format
的php