Как преобразовать массив символов, содержащий двойное значение, в двойную переменную, БЕЗ создания накладных расходов на объект String?

Я просто хочу добавить что-то: JavaScript не поддерживает lookbehinds как (?<= ) или (?<! ).

Но он поддерживает lookaheads, такие как (?= ) или (?! ).

0
задан Vaibhav Bhat 18 March 2019 в 20:27
поделиться

1 ответ

Грубый, хакерский и не будет работать с негативами, но вы можете сделать работу, чтобы укрепить ее:

private static double toDouble(byte[] bs) {
    boolean onLeft = true;
    double left = 0;
    double right = 0;

    for (byte b : bs) {
        if (b == '.') {
            onLeft = false;
        } else if (onLeft) {
            left *= 10;
            left += b - '0';
        } else {
            right += b - '0';
            right /= 10;
        }
    }

    return left + right;
}

И:

 System.out.println(toDouble(new byte[] { '1', '1', '.', '1' }));

Урожайность 11,1.

0
ответ дан Not a JD 18 March 2019 в 20:27
поделиться
Другие вопросы по тегам:

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