@pand1go

Как преобразовать цифровое написание числа в текстовое написание?

Являюсь полнейшим новичком в JS. Выполняю задание по преобразованию цифрового написания числа в текстовое. При этом на данном этапе обучения курса использовать массивы не требуется. Вопрос должен решаться созданием необходимых условий. Даются числа от 0 до 999. Необходимо чтобы числа выводились текстом например 128 - сто двадцать восемь. Достиг определенного успеха путем разбиения на сотни десятки и единицы. Но при выводе числа с сотнями, не выводит десятки (например 256 будет выводиться двести шесть), если же задавать значения до 100 то выводит нормально. Подскажите с чем это связано? Код прикладываю
let a = 126;
let a1 = '';
let b2 = '';
let a3 = '';
if (a % 10 == 1){
    a1 = 'один';
} else if (a % 10 == 2){
    a1 = 'два';
} else if (a % 10 == 3){
    a1 = 'три';
} else if (a % 10 == 4){
    a1 = 'четыре';
} else if (a % 10 == 5){
    a1 = 'пять';
} else if (a % 10 == 6){
    a1 = 'шесть';
} else if (a % 10 == 7){
    a1 = 'семь';
} else if (a % 10 == 8){
    a1 = 'восемь';
} else if (a % 10 == 9){
    a1 = 'девять';
}

if (a < 100 && Math.trunc(a / 10) == 2){
    b2 = 'двадцать';
} else if (Math.trunc(a / 10) == 3){
    b2 = 'тридцать';
} else if (Math.trunc(a / 10) == 4){
    b2 = 'сорок';
} else if (Math.trunc(a / 10) == 5){
    b2 = 'пятьдесят';
} else if (Math.trunc(a / 10) == 6){
    b2 = 'шестьдесят';
} else if (Math.trunc(a / 10) == 7){
    b2 = 'семьдесят';
} else if (Math.trunc(a / 10) == 8){
    b2 = 'восемьдесят';
} else if (Math.trunc(a / 10) == 9){
    b2 = 'девяносто';
}

if (a > 100 && Math.trunc(a / 100) == 1){
    a3 = 'сто';
} else if (Math.trunc(a / 100) == 2){
    a3 = 'двести';
} else if (Math.trunc(a / 100) == 3){
    a3 = 'триста';
} else if (Math.trunc(a / 100) == 4){
    a3 = 'четыреста';
} else if (Math.trunc(a / 100) == 5){
    a3 = 'пятьсот';
} else if (Math.trunc(a / 100) == 6){
    a3 = 'шестьсот';
} else if (Math.trunc(a / 100) == 7){
    a3 = 'семьсот';
} else if (Math.trunc(a / 100) == 8){
    a3 = 'восемьсот';
} else if (Math.trunc(a / 100) == 9){
    a3 = 'девятьсот';
}

a = `${a3} ${b2} ${a1}`;
console.log(a);
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Подскажите с чем это связано?
С тем, чтоMath.trunc(256 / 10) === 25
Сначала разбейте число на сотни, десятки и единицы, а потом уже формируйте строку. Не забудьте блок 11-19 и вариант, когда на входе 0.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы