我想根据小数位数稍微增加一个值。根据小数位数小幅增加值
例如,如果值是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