mbxngtgo
@mbxngtgo
веб программист

Как в числе оставить две целые цифры после запятой?

Как в числе оставить две целые цифры после запятой динамически?

К примеру есть число.

0.00145

оставить 0.0014

1.0145
оставить 1.01

0.00008855
оставить 0.000088

Как осуществить динамически ?Есть примеры?
  • Вопрос задан
  • 312 просмотров
Решения вопроса 1
mbxngtgo
@mbxngtgo Автор вопроса
веб программист
Никто никогда не задавал такого подобного вопроса и в итоге разработал собственный велосипед.
Юзайте. Если у вас есть более короткий вариант в студию..
$value = $_GET['summa'];
$summa = $_GET['summa'];

$value	=	$value	+	0;

if (is_int($value)) {
    echo 'Целое число';
} elseif (is_float($value)) {
    //echo 'Число с плавающей точкой';
	
    $value = explode('.', $value);
    
    echo $value[0] . '.' . $value[1] . '<br>';
    
    if ($value[0] == 0) {
        
        echo 'Не целое дробное число<br>';
		
		if ($value[1][1]==!0 ){
			$summa = round($summa, 2);
			
			//echo $summa;
		}else if ($value[1][3]==!0 ){
			$summa = round($summa, 4);
			
			//echo $summa;
		}
        
    } else {
        
        $text    = $value[1];
        $findme2 = 'E-';
        
        if (stripos($text, $findme2) !== false) {
            
            echo 'Не целое дробное число';
            
            $value = number_format($value[0] . '.' . $value[1], 7);
            $summa = rtrim($value, '0');
			
        } else {
            //echo 'Не найдено';
            
            echo 'Целое число с  дробным окончанием';
            
            $summa = $summa;
            
            $summa = round($summa, 2);
            
            $summa = number_format($summa, 2, ',', ' ');

        }

    }
 
} else {
    echo 'Не число';
}

$summa = str_replace(".", ",", $summa);
echo $summa ;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
round()

round(1.0145, 2); //1.01

Если нужно рандомное округление, то есть функция rand()

round(1.0145, rand(2,6));
Ответ написан
@inFureal
$num = 16234.3434;
$nulls = 2; // Количество знаков после запятой
$limiter = pow(10, $nulls);
echo ((int)($num * $limiter)) / $limiter;  // 16234.34

Не важно, какое число. Но решение Максим лучше, не знаю чем не понравилось
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
от 300 000 до 500 000 ₽
07 мая 2024, в 20:44
500 руб./за проект
07 мая 2024, в 20:21
900000 руб./за проект
07 мая 2024, в 19:52
50000 руб./за проект