83 lines
3.0 KiB
PHP
83 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Utilities;
|
|
|
|
class Round
|
|
{
|
|
public static function odd($value)
|
|
{
|
|
// $value = 1 / $value;
|
|
if ($value) {
|
|
if ($value <= 1) {
|
|
// to 0.01
|
|
$fac = pow(10, 2);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 1 && $value <= 3) {
|
|
// to 0.01
|
|
$fac = pow(10, 2);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 3 && $value <= 5) {
|
|
// to 0.05,
|
|
$value *= 20;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value /= 20;
|
|
$fac = pow(10, 2);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 5 && $value <= 10) {
|
|
// to 0.1
|
|
$fac = pow(10, 1);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 10 && $value <= 20) {
|
|
// to 0.25
|
|
$value *= 4;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value /= 4;
|
|
$fac = pow(10, 2);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 20 && $value < 30) {
|
|
// to 0.5
|
|
$value *= 2;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value /= 2;
|
|
$fac = pow(10, 2);
|
|
$value = round($value * $fac) / $fac;
|
|
} elseif ($value > 30 && $value < 75) {
|
|
// to => 1
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
} elseif ($value > 75 && $value < 150) {
|
|
// to => 5
|
|
$value /= 5;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value *= 5;
|
|
} elseif ($value > 150 && $value < 300) {
|
|
// to => 10
|
|
$value /= 10;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value *= 10;
|
|
} elseif ($value > 300 && $value < 500) {
|
|
// to => 25
|
|
$value /= 25;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value *= 25;
|
|
} elseif ($value > 500 && $value < 1000) {
|
|
// to => 50
|
|
$value /= 50;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value *= 50;
|
|
} else {
|
|
// to => 50
|
|
$value /= 100;
|
|
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
|
|
$value *= 100;
|
|
}
|
|
}
|
|
$value = round($value * 100) / 100;
|
|
// min max quote
|
|
if ($value < 1.01) {
|
|
$value = 1;
|
|
}
|
|
|
|
return $value;
|
|
}
|
|
}
|