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

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

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

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

0.00145

оставить 0.0014

1.0145
оставить 1.01

0.00008855
оставить 0.000088

Как осуществить динамически ?Есть примеры?
  • Вопрос задан
  • 409 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 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

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

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

Похожие вопросы