Problem: Behalten Sie 1 Dezimalstelle bei, runden Sie nicht, geben Sie 0 ein, wenn es eine ganze Zahl ist
Viele Leute sagten, sprintf('%.1f',$str);
zu verwenden, aber es gibt immer noch Probleme mit den Ergebnissen
Schließlich wurde diese Methode verwendet, um das Problem zu lösen: echo sprintf('%.1f', floor($str));
<code><?php $str1 = 12.34; $str2 = 12.35; $str3 = 12.36; echo sprintf('%.1f',$str1);//12.3 echo sprintf('%.1f',$str2);//12.3 echo sprintf('%.1f',$str3);//12.4 echo sprintf('%.1f', floor($str3));//12.3 ?> </code>
Haben Sie nicht gesagt, dass Sie nicht runden möchten? Warum wird beim Runden nicht 5 gerundet, sondern nur 6; andere Funktionen
werden auf 5 gerundet. Warum ist das so? number_format($str)
Viele Leute sagten,
zu verwenden, aber es gibt immer noch Probleme mit den Ergebnissen sprintf('%.1f',$str);
Schließlich wurde diese Methode verwendet, um das Problem zu lösen: echo sprintf('%.1f', floor($str));
<code><?php $str1 = 12.34; $str2 = 12.35; $str3 = 12.36; echo sprintf('%.1f',$str1);//12.3 echo sprintf('%.1f',$str2);//12.3 echo sprintf('%.1f',$str3);//12.4 echo sprintf('%.1f', floor($str3));//12.3 ?> </code>
werden auf 5 gerundet. Warum ist das so?
number_format($str)
Referenz
<code class="php"><?php echo sprintf('%.0f', 12.5); //12 echo sprintf('%.0f', 15.5); //16 ?></code>