• Как отделить рубли от копеек в вещественных числах?

    adugin
    @adugin Куратор тега Python
    Ввиду ошибок округления не следует использовать float для денежных вычислений:
    x = float('40.80')
    a = int(x)
    b = int(100 * (x - a))
    print(a, b)  # => 40 79

    Используйте decimal.Decimal вместо float:
    from decimal import Decimal
    
    x = Decimal('40.80')
    a = int(x)
    b = int(100 * (x - a))
    print(a, b)  # => 40 80

    Ну или банально:
    a, b = map(int, '40.80'.split('.'))
    print(a, b)  # => 40 80

    В реальных задачах следует предусмотреть, что:
    1) Число может быть отрицательным;
    2) Decimal separator в текущей локали может быть не точкой.
    Ответ написан
    2 комментария
  • Как узнать максимальное число в двумерном массиве?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Зачем вы занимается программированием, если вы даже не хотите поискать информацию самостоятельно или хотя бы немного постараться?

    $data = [...]; // ваши данные
    $data = array_filter($data, function($item) {
        return $item['x'] == 2;
    });
    $data = array_map(function($item) {
        return $item['y'];
    }, $data);
    $max = max($data);


    ну или немного говнокода:

    $data = [...]; // ваши данные
    $max = max(array_map(
        function($item) {
            return $item['y'];
        },
        array_filter($data, function($item) {
            return $item['x'] == 2;
        })
    ));
    Ответ написан
    1 комментарий
  • Как из строки вывести слова в массив?

    @abcd0x00
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int main()
    {
        char line[] = "  abc  def, ghi  ";
        char *arr[3];
        char *p;
    
        p = line;
        for (int i = 0; i < 3; i++) {
            p = strtok(p, " ,");
            if (p) {
                arr[i] = p;
                p = NULL;
            } else {
                break;
            }
        }
    
        for (int i = 0; i < 3; i++) {
            cout << arr[i] << endl;
        }
    
        return 0;
    }


    Вывод
    [guest@localhost cpp]$ .iso++ t.cpp -o t
    [guest@localhost cpp]$ ./t
    abc
    def
    ghi
    [guest@localhost cpp]$
    Ответ написан
    Комментировать