Home >Backend Development >PHP Tutorial >PHP算法:如何把 00301.0050600变成正整数30100506
<code><br>/** * @description 小数点变成正整数 * * @param $str * * @return mixed */ function toIntegerNum($str) { $str = preg_replace('/(\.\d+)([0]*)/' , '\\1' , $str); $str = str_replace('.' , '' , $str); return $str; } $s = 00301.0050600; var_dump(toIntegerNum($s)); //输出string '30100506' (length=8) </code>
重新改写了一下,还有更好的方法吗
<code>/** * @description 小数点变成正整数 * * @param $str * * @return mixed */ function toIntegerNum($str) { $arr = explode('.' , $str); if (!empty($arr[0])) { $arr[0] = ltrim($arr[0] , '0'); } if (!empty($arr[1])) { $arr[1] = rtrim($arr[1] , '0'); } return ltrim(implode('' , $arr),'0'); } $s = '00301.0050600'; //$s = 00301.0050600; //$s = 300; $s = 0.00560000; var_dump(toIntegerNum($s)); </code>
<code><br>/** * @description 小数点变成正整数 * * @param $str * * @return mixed */ function toIntegerNum($str) { $str = preg_replace('/(\.\d+)([0]*)/' , '\\1' , $str); $str = str_replace('.' , '' , $str); return $str; } $s = 00301.0050600; var_dump(toIntegerNum($s)); //输出string '30100506' (length=8) </code>
重新改写了一下,还有更好的方法吗
<code>/** * @description 小数点变成正整数 * * @param $str * * @return mixed */ function toIntegerNum($str) { $arr = explode('.' , $str); if (!empty($arr[0])) { $arr[0] = ltrim($arr[0] , '0'); } if (!empty($arr[1])) { $arr[1] = rtrim($arr[1] , '0'); } return ltrim(implode('' , $arr),'0'); } $s = '00301.0050600'; //$s = 00301.0050600; //$s = 300; $s = 0.00560000; var_dump(toIntegerNum($s)); </code>
按状态来解析:
LZ已经给出答案了啊=w=
<code><?php $a = 00301.0050600; echo str_replace('.', '', floatval($a)); </code></code>
<code>return trim(str_replace('.','',$str),'0') </code>
借 @tczzjin 的答案
<code>$str = 00301.0050600; echo intval(str_replace('.','',$str)); </code>