<?php
function getGridStepForValue(float $c, int $minCountLines): float
{
$config = [15, 5, 2, 1];
$n = ceil($c);
$length = \strlen((string)$n);
while ($length) {
foreach ($config as $singleDivisor) {
$nDivisor = (float)str_pad((string)$singleDivisor, $length, '0');
if ($n - ($nDivisor * $minCountLines) > 0) {
return $nDivisor;
}
}
$length--;
}
return getGridStepForValue($c * 10, $minCountLines) / 10;
}
var_dump(getGridStepForValue(1, 4),
getGridStepForValue(1, 5));
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- float(0.2)
float(0.1)
preferences:
144.72 ms | 403 KiB | 184 Q