2016-09-19 19 views
-8

値の2番目の小数点が0の場合は、 の値に10進数を1つのみ指定する必要があります。他の人には、2桁の10進数を指定する必要があります。
小数点以下の零点を切り捨てる

eg 1. 150.00 to 150.0 
eg 2. 150.10 to 150.1 
eg 3. 150.76 to 150.76 

私が知る必要があるのは、これを行うためのPHP機能があるかどうかです。

echo floatval("150.00")."<br>"; 
echo floatval("150.10")."<br>"; 
echo floatval("150.76")."<br>"; 

結果は次のようになります

150 
150.1 
150.76 

私はちょうど任意のPHP関数があるかどうかを知る必要がある代わりに、150の150.0を持っている必要があります。それ以外の場合は、コードを書くことができます。

+0

あなたが何をしようとしましたのに役立ちますあなたの要件を満たすために??? –

+0

floatval()などにキャストしてみてください。例: '$ num = floatval(150.10);' – jitendrapurohit

+0

PS:これは150.00で失敗する可能性があります。これを文字列に入れ、 'rtrim()'関数をチェックしてください。 – jitendrapurohit

答えて

1

あなたはそれが0の場合、最後の文字を削除することもSUBSTR()関数を使用することができますが、以下のコードであってもよいあなたが

function roundit($string) 
{ 
$string = number_format($string,2); 
if (substr($string, -1, 1) == '0') 
{ 
    $string = substr($string, 0, -1); 
    echo $string; 
} 
else 
echo $string; 
} 
roundit('150.00'); 
roundit('150.10'); 
roundit('150.76'); 
+0

実際には、これは何を言っていません。彼は言った、 "値の2番目の小数点がゼロの場合、値は1つの小数点のみを持つ必要があります。他の場合は小数点以下2桁が必要です。私が丸めをしたら(152.333332)、同じ番号をつけるでしょう:)。彼は明らかに「他の人のために、それは2桁の小数点を持つべきだ」と言った。私はOPが本当に彼が必要としているか分からないと思う;) – hummingBird

+0

その場合、彼はちょうど2小数点以下を得るためにnumber_format()関数を使うことができる。 –

+0

という答えを更新した。 100.4320 - >それは100.432を与えるでしょう。最初にnumber_formatした後、末尾のゼロ(存在する場合)を切り捨てる必要があります。そして、明らかに、彼はまだ '.0'を持っていたいと思っています。 – hummingBird

0

あなたはそれを手助けする簡単な機能を書くことができます。このような何かは、トリックを行うことができます:

<?php 

    function removeTrailingZero($num){ 
     $num = floatval($num); 
     $pieces = explode(".", $num); 
     for($i=0; $i<count($pieces); $i++){ 
      if(isset($pieces[1])){ 
       $pieces[1] = preg_replace("#0*$#", "", $pieces[1]); 
       break; 
      }else{ 
       $pieces[1] = '0'; 
       break; 
      } 
     } 
     return rtrim(implode(".", $pieces), "."); 
     //return floatval(rtrim(implode(".", $pieces), ".")); 
    } 

    var_dump(removeTrailingZero(123.45)); 
    var_dump(removeTrailingZero(67.80)); 
    var_dump(removeTrailingZero(90)); 
    var_dump(removeTrailingZero(100.00000)); 

    // PRODUCES::: 
    string '123.45' (length=6) 
    string '67.8'  (length=4) 
    string '90.0'  (length=4) 
    string '100.0'  (length=5) 
+0

ありがとうございました。私は100の代わりに100.0が必要です。私の要件のためにあなたのコードを編集することができます。 – Thejas

+0

それは簡単です。 'for'ループ内の条件付き' if'にelse節を追加し、 '$ pieces [1]'変数に "0"を代入してください。ポストはそれを考慮に入れて更新されました。しかし、あなたは今、その関数の戻りデータ型として 'STRING'を得る危険性があります... – Poiz

関連する問題