php десятичное число

153
21 марта 2019, 05:30

Есть десятичное число, например 10100, оно определяется как двоичное(т.е. не могу взять из него части, такие как 10000 и 100). Еще например 3600, как восьмеричное, что также не дает коду завершиться. Как мне его использовать, чтобы выполнять операции как для обычного десятичного числа?

Вот весь код скрипта:

    <?php
    error_reporting(-1);
    $amount = 10100;
    echo "Сумма: $amount";
    $bills = array(
        100 => 23,
        500 => 5,
        1000 => 7,
        5000 => 20
    );
    $FiveThousand = 0;
    if($bills['5000'] > 0 and $amount > 5000)
    {
        while ($amount >= 5000 and $bills['5000']!=0) {
            $FiveThousand++;
            $bills['5000']--;
            $amount -= 5000;
        }
    }
    $OneThousand = 0;
    if($bills['1000'] > 0 and $amount > 1000)
    {
        while ($amount >= 1000 and $bills['1000']!=0) {
            $OneThousand++;
            $bills['1000']--;
            $amount -= 1000;
        }
    }
    $FiveHundred = 0;
    if($bills['500'] > 0 and $amount > 500)
    {
        while ($amount >= 500 and $bills['500']!=0) {
            $FiveHundred++;
            $bills['500']--;
            $amount -= 500;
        }
    }
    $OneHundred = 0;
    if($bills['100'] > 0 and $amount > 100)
    {
        while ($amount >= 100 and $bills['100']!=0) {
            $OneHundred++;
            $bills['100']--;
            $amount -= 100;
        }
    }
    echo "<br>";
    if($amount % 100 == 0 and $amount == 0) {
        if ($FiveThousand != 0) {
            echo "$FiveThousand" . "x5000 ";
        }
        if ($OneThousand != 0) {
            echo "$OneThousand" . "x1000 ";
        }
        if ($FiveHundred != 0) {
            echo "$FiveHundred" . "x500 ";
        }
        if ($OneHundred != 0) {
            echo "$OneHundred" . "x100 ";
        }
    } elseif ($amount > 0) {
        echo "Недостаточно купюр для выплаты наличных";
    } else {
        echo "Выдача невозможна: Отсутствуют купюры меньше ста рублей";
    }
    ?>
Answer 1

base_convert - переведёт Ваше число из двоичной системы счисления в десятичную.

Answer 2

Ранее верно подсказали про base_convert. Вот пример:

php > $foo = (int) base_convert(10100, 2, 10);
php > var_dump($foo);
int(20)

В конце надо было просто строку снова привести к int.

READ ALSO
PHP придать правильный вид массиву

PHP придать правильный вид массиву

Столкнулся с проблемой

167
Проблема с PHPWord

Проблема с PHPWord

Пытаюсь использовать данную библиотеку в проектеСтолкнулся с проблемой :

130
Как сериализовать arraycollection в symfony?

Как сериализовать arraycollection в symfony?

Использую для сериализации JMS сериализатор, сериализую в JsonКогда в сериализатор передаётся объект заполненный ArrayCollection(свойство $peoples), то на выходе...

135