• ベストアンサー

PHPでの数値の表示方法を教えてください。

こんにちは。PHPを使っていまして、数値の表示で悩んでいます。 数値をカンマで区切りして、もし少数点以下の数値がある場合は、 0をカットして表示したいのですが どのようにすれば良いでしょうか? たとえば下記の数値について 10000 10000.10000 10000.00300 12345.67890 下記のような結果を得るには どうすれば良いでしょうか? 10,000 10,000.1 10,000.003 12,345.6789 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

整数部分(小数点以下切り捨て)はnumber_formatに任せて、 小数部分は、floatvalした上で「.」が出現すればそれ以降を返せばよいでしょう <?PHP $array=array(10000,10000.10000,10000.00300,12345.67890); foreach($array as $val){ print number_format(floor($val)).(preg_replace("/^[0-9]+?($|\.[0-9]+$)/","$1",floatval($val)))."<br>\n"; } ?>

その他の回答 (1)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

多分、こんな感じにしたいのでしょうかね・・・ <?php $a = 10000; print spr($a) . '<br />'; $a = 10000.10000; print spr($a) . '<br />'; $a = 10000.00300; print spr($a) . '<br />'; $a = 12345.67890; print spr($a) . '<br />'; function spr($arg) { $out = number_format($arg,8); // 少数以下を十分多めに確保する while (substr($out, strlen($out)-1, 1) === '0') { $out = substr($out, 0, strlen($out)-1); } // 0 をカット if (substr($out, strlen($out)-1, 1) === '.') { $out = substr($out, 0, strlen($out)-1); } // 小数点で終わっていたらカット return $out; }

関連するQ&A

専門家に質問してみよう