0
我正在尋找一個優雅的解決方案(如果存在的話)。PHP科學記數法縮短
我有一堆數字,有任意數量的小數位數。我想迫使數使用8位小數,如果它有8個以上尾隨零,即
0.000000004321
將被轉換爲:
0.00000001
但我不想用數字格式,因爲如果我把它強制8個小數的數字格式我的號碼沒有8位小數的樣子:
1.00000000
我寧願這只是看起來像(數量爲> = 1):
1.00700000 - > 1.01
而對於金額< 1:
0.00300000 - > 0.003
如果數量小於1即0.XX我希望它具有更高的精度(最多8個,將所有尾隨0切掉)。
所以,再一次,這裏的幾個例子,以明確:
1.00300000 -> 1.01 (maintain and round 2p for amounts >= 1)
0.00300000 -> 0.003 (maintaining precision, removing trailing 0's for amounts < 1)
1.00300001 -> 0.01 (maintain and round 2dp for amounts >= 1)
0.00300001 -> 0.00300001 (no change needed on this)
0.003000017 -> 0.00300002 (rounds upward to 8dp because it's < 1)
1.000000002 -> 1.00 (maintain and round 2dp for amounts >= 1)
0.000000002 -> 0.00000001 (rounds upward to 8dp because it's < 1)
此刻我非常小的數以科學計數法顯示,因爲小數位數的了。所以這是我需要擔心的另一件事情(即轉換出科學計數法來進行計算)。
我知道我可以用一堆通用邏輯來做到這一點,但它看起來像是一種很冒險的做事方式,當然這裏有一些很好的解決方案。
謝謝。
輪,小區和/地板並不在這種情況下工作嗎? – Tim 2013-04-06 03:05:25