簡體   English   中英

PHP從數字字符串中刪除小數

[英]PHP remove decimal from number string

我有一個算法,給出一個帶小數點的數字(IE“.57”)。 我想做的就是得到沒有小數的“57”。

我用過eregi_replace和str_replace都沒用過!

$one = ".57";
$two = eregi_replace(".", "", $one);
print $two;
$one = '.57';
$two = str_replace('.', '', $one);
echo $two;

這樣可行。 100%測試。 順便說一下,所有ereg(i)_ *函數都是折舊的。 如果需要正則表達式,請使用preg_ *。

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))

只是嘲笑其他一些獲得相同結果的方法

$number = ltrim($number, '.');

這會刪除所有尾隨點。

你說你試過使用str_replace沒有任何運氣,但下面的代碼完美地運行:

<?php
    $one = '.57';
    $two = str_replace('.', '', $one);
    echo $two;
?>

我用過eregi_replace和str_replace都沒用過!

那么... ereg_replace()將不起作用,因為它使用常規表達式,並且. (點)字符有一個特殊的含義: 一切 (所以你已經將每個字符替換為“”(空字符串))。

str_replace()在這種情況下工作得非常好。

這是一個現場測試: http//ideone.com/xKG7s

這將以整數形式返回。

$two = (integer) trim('.', $one);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM