0

これは非常に単純な問題ですが、単純で単純な解決策は見当たりません。

数値を表す値がありますが、文字列です。例: 0.0, 1.0, 10.0, 1.1. ほとんどの場合、それらは整数を表しますが、分数の場合もあります。

これらの数値を として表示したい0, 1, 10, 1.1

私はこれらの簡単な解決策を考えましたが、時折発生する分数を考慮していません。

$val = (int) val;
--OR--
$val = sprintf('%d', $val);

明らかに、フォーマットする前に数値が整数であるかどうかをテストする長い解決策がありますが、できるだけ短い単純なものを探しています。

4

2 に答える 2

2

この簡単なトリックを使用します。

echo 0.0 + 0;
echo 1.0 + 0;
echo 10.0 + 0;
echo 1.1 + 0;

これは float へのキャストと同等です

(float)$num

また

floatval($num)
于 2013-11-14T11:02:01.373 に答える
0

これを試すことができます:

$val = preg_match("/\.0$/", $number_string) ? (int)$number_string : (float)$number_string;

元の文字列の正規表現を使用して.0末尾を照合し、一致する場合は文字列値を整数にキャストし、そうでない場合は値を float にキャストします。

于 2013-11-14T11:01:53.923 に答える