4

小数点付きの数値(IE ".57")を返すアルゴリズムがあります。私がやりたいのは、小数点なしの「57」を取得することです。

私はeregi_replaceとstr_replaceを使用しましたが、どちらも機能しませんでした。

$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
4

6 に答える 6

8
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;

それはうまくいきます。100%テスト済み。ところで、すべてのereg(i)_*関数は減価償却されます。正規表現が必要な場合は、代わりにpreg_*を使用してください。

于 2011-01-19T18:29:37.353 に答える
5
Method       Result   Command
x100         57       ((float)$one * 100))
pow/strlen   57       ((float)$one * pow(10,(strlen($one)-1))))
substr       57       substr($one,1))
trim         57       ltrim($one,'.'))
str_replace  57       str_replace('.','',$one))

同じ結果を得る他のいくつかの方法をかわすだけ

于 2011-01-19T18:32:00.553 に答える
2
$number = ltrim($number, '.');

これにより、末尾のドットがすべて削除されます。

于 2011-01-19T18:29:29.040 に答える
1

運がなくてもstr_replaceを使用しようとしたとのことですが、次のコードは完全に機能します。

<?php
    $one = '.57';
    $two = str_replace('.', '', $one);
    echo $two;
?>
于 2011-01-19T18:30:57.933 に答える
1

私はeregi_replaceとstr_replaceを使用しましたが、どちらも機能しませんでした。

ええと...ereg_replace()通常の式を使用しているため機能しません。 .(ドット)文字には特別な意味があります:すべて(つまり、すべての文字を ""(空の文字列)に置き換えました)。

ただしstr_replace()、この場合は完全に正常に機能します。

これがライブテストです:http://ideone.com/xKG7s

于 2011-01-19T18:35:02.903 に答える
0

これは整数として返されます。

$two = (integer) trim('.', $one);
于 2011-01-19T18:31:34.750 に答える