本篇文章給大家介紹一下PHP把科學(xué)計數(shù)格式轉(zhuǎn)化為數(shù)字字符串的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
科學(xué)計數(shù)格式轉(zhuǎn)化為字符串
將一個科學(xué)計數(shù)格式的數(shù):1.2345678987654321e+30 轉(zhuǎn)化為字符串‘123456789876543210000000000000’
首先將變量進(jìn)行拆分在重組得到結(jié)果
實現(xiàn)原理:(1)將1.2345678987654321e+30拆分為1.2345678987654321和+30
(2)在用1.2345678987654321乘以10的30次方,10的30次方用php函數(shù)pow(10,30)來得出。
a.第一種方法,從最普通的想法來
public function sctonum($num){ if(false !== stripos($num, "e")){ $a = explode("e",strtolower($num)); $b = $a[0] * pow(10,$a[1]); return $b; }else{ return $num; } }
b.用循環(huán)來得出
public function numToStr($num) { $result = ""; if (stripos($num, 'e') === false) { return $num; } while ($num > 0) { $v = $num - floor($num / 10) * 10; $num = floor($num / 10); $result = $v . $result; } return $result; }
c.全部用php函數(shù)來得出
public function sctonum($num, $double = 5){ if(false !== stripos($num, "e")){ $a = explode("e",strtolower($num)); return bcmul($a[0], bcpow(10, $a[1], $double), $double); }else{ return $num; } } //注$double 是小數(shù)位數(shù),可默認(rèn)設(shè)置為沒有
總結(jié)及建議:一萬個人眼里一萬個哈利波特!每個結(jié)果可以由不同的過程來實現(xiàn),首先用你自己最順手的,然后再來優(yōu)化,其次借鑒能理解又高效規(guī)范的方法,比如c,簡潔高效。
推薦學(xué)習(xí):php視頻教程