我想根據小數位數稍微增加一個值。根據小數位數小幅增加值
例如,如果值是1.2餘將由0.1增加它,通過12.345 0.001,由12.345678 0.000001等
我現在有使用的,如果一個鏈長的實施方案中,否則,如果。我知道這不是最有效的方式,可以使用循環,但我不確定如何構建循環。我嘗試使用PHP substr_replace函數,但我無法得到它的工作。
有沒有另一種方法可以構造一個循環來減少我的代碼行並提高效率?
這裏是我的PHP代碼至今:
$valueOne = 12.345678;
// get amount of decimals
$decimal = strlen(strrchr($valueOne, '.')) -1;
/*
this also works for finding how many decimals
$test = floatval($valueOne);
for ($decimal_count = 0; $test != round($test, $decimal_count); $decimal_count++);
echo $decimal_count;
*/
// see value before change
echo $valueOne;
if ($decimal == "1") {
$valueOne = $valueOne + 0.1;
}
else if ($decimal == "2") {
$valueOne = $valueOne + 0.01;
}
else if ($decimal == "3") {
$valueOne = $valueOne + 0.001;
}
// etc ...
// see value after change
echo $valueOne;
/*
i tried messing around with using a loop, but did not have much luck
$start = 0.1;
$count = 0;
$position = 2;
while ($count != $decimal) {
echo substr_replace($start, 0, $position, 0) . "<br />\n";
$count++;
//$position++;
}
*/
@Barmer謝謝你的幫忙!如果在小數點末尾有0,我將如何調整代碼,例如,如果數字是12.3450,代碼將忽略0並輸出12.346。我怎樣才能得到它輸出12.3451? – Eric
您必須將該數字寫成字符串:'「12.3450」'。否則,PHP解析器忽略尾隨零,沒有辦法告訴它最初是這樣寫的。 – Barmar