Как вывести вторую цифру из указанного числа?

Сообщения
19
Реакции
1
Вот есть число 567, как с него вывести вторую цифру? Спасибо.
 
Сообщения
265
Реакции
77
Предупреждения
8
Помог
1 раз(а)
Есть разница от длины числа?
 
Сообщения
265
Реакции
77
Предупреждения
8
Помог
1 раз(а)
Код:
abs(x)
while (x>100) x /= 10;
x %= 10;
 
Сообщения
3,381
Реакции
1,480
Помог
124 раз(а)
VasyaVas990, преобразовать в строку и вывести 2-ю ячейку
 
Сообщения
964
Реакции
51
Помог
10 раз(а)
VasyaVas990, как написал Nordic Warrior
Код:
server_print("***** %i", RECEIVE_CertainNumber(256, 2));

//iNumber - число.
//iCertain - цифра, которую требуется вывести.

RECEIVE_CertainNumber(const iNumber, const iCertain) {
    new szBuffer[10];
    num_to_str(iNumber, szBuffer, iCertain);

    return str_to_num(szBuffer[iCertain - 1]);
}
Результат: ***** 5
 
Последнее редактирование:
Сообщения
265
Реакции
77
Предупреждения
8
Помог
1 раз(а)
Код:
// iNum - число
// iCertrian - номер цифры по порядку (читаем слева на право)
// iRMinus - Выводить цифру отрицательной, если число отрицательно
GetCertainNumIntL(iNum, const iCertrian, const bool: iRMinus)
{
    new bool: iMinus;
    if (iNum < 0)
    {
        iMinus = true;
        abs(iNum);
    }
    // 1000020000 -> | 20000 |
    iNum %= power(10, iCertrian);
    // 20000 -> | 2 |
    while (iNum /= 10 > 10);
    return (iRMinus && iMinus) ? -iNum : iNum;
}

// iNum - число
// iCertrian - номер цифры по порядку (читаем слева на право)
// iRMinus - Выводить цифру отрицательной, если число отрицательно
GetCertainNumIntStrL(iNum, const iCertrian, const bool: iRMinus)
{
    new szBuffer[32], bool: iMinus;
    if (iNum < 0)
    {
        iMinus = true;
        abs(iNum);
    }
    num_to_str(iNum, szBuffer, iCertain);
    iNum = str_to_num(szBuffer[iCertain - 1]);
    return (iRMinus && iMinus) ? -iNum : iNum;
}

// iNum - число
// iCertrian - номер цифры по порядку (читаем справа на лево)
// iRMinus - Выводить цифру отрицательной, если число отрицательно
GetCertainNumIntR(iNum, const iCertrian, const bool: iRMinus)
{
    new bool: iMinus;
    if (iNum < 0)
    {
        iMinus = true;
        abs(iNum);
    }
    // 1000020000 -> | 100002 |
    iNum /= power(10, iCertrian - 1);
    // 100002 -> | 2 |
    iNum %= 10;
    return (iRMinus && iMinus) ? -iNum : iNum;
}

// fNum - число
// iCertrian - номер цифры по порядку (читаем до запятой - справа на лево. после запятой - слева на право)
// iRMinus - Выводить цифру отрицательной, если число отрицательно
GetCertainNumFloat(Float: fNum, const iCertain, const bool: iRMinus)
{
    new bool: iMinus, iNum;
    if (fNum < 0)
    {
        iMinus = true;
        floatabs(fNum);
    }
    if (iCertain < 0)
    {
        // 0,13251 -> | 251,0 |
        fNum *= power(10, abs(iCertain));
        /// 251,0 -> 251 -> 1
        iNum = floatround(fNum, floatround_floor) % 10;
      
        return (iRMinus && iMinus) ? -iNum : iNum;
    }
    // 1000020000,13251 -> | 1000020000 |
    iNum = floatround(fNum, floatround_floor);
    // 1000020000 -> | 100002 |
    iNum /= power(10, iCertrian-1);
    // 100002 -> 2
    iNum %= 10;
    return (iRMinus && iMinus) ? -iNum : iNum;
}
 
Последнее редактирование:

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу