Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 54

Число прописью в цифру

30.03.2021, 12:03. Показов 2284. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Подскажите, есть ли более удобные и быстрые функции перевода числа прописью в цифру?
Например, строку "Дом сорок пять, квартира семь" перевести в "Дом 45, квартира 7"
на просторах интернета нахожу только обратное действие
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2021, 12:03
Ответы с готовыми решениями:

Вывести число прописью.
Приветствую, имеется база данных и личный кабинет который выводит с этой базы данных информация, так вот есть ранги, которые он выводит...

Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем - среднюю цифру (десятки)
Дано трехзначное число.Вывести вначале его последнюю цифру (единицы), а затем - его среднюю цифру (десятки.)

Вывести цифру прописью
2)Вводится число от 1-го до 5-ти. Если число равно 1, то выводится "Число равно еденице", если чило равняется двум - "ааше число...

9
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.03.2021, 13:10
А до какого уровня функция должна числа охватывать? Сто, двести, тысяча?
0
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 54
30.03.2021, 13:11  [ТС]
Para bellum, до сотен, это будут только адреса
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.03.2021, 15:54
Лучший ответ Сообщение было отмечено mirapi как решение

Решение

Вот. Может кто что более умное посоветует.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function word_to_number(string $text)
{
    $replaces = [
        'один'         => 1,
        'два'          => 2,
        'три'          => 3,
        'четыре'       => 4,
        'пять'         => 5,
        'шесть'        => 6,
        'семь'         => 7,
        'восемь'       => 8,
        'девять'       => 9,
        'десять'       => 10,
        'одиннадцать'  => 11,
        'двенадцать'  => 12,
        'тринадцать'   => 13,
        'четырнадцать' => 14,
        'пятнадцать'   => 15,
        'шестнадцать'  => 16,
        'семнадцать'   => 17,
        'восемнадцать' => 18,
        'девятнадцать' => 19,
        'двадцать'     => 20,
        'тридцать'     => 30,
        'сорок'        => 40,
        'пятьдесят'    => 50,
        'шестьдесят'   => 60,
        'семьдесят'    => 70,
        'восемьдесят'  => 80,
        'девяносто'    => 90,
        'сто'          => 100,
        'двести'       => 200,
        'триста'       => 300,
        'четыреста'    => 400,
        'пятьсот'      => 500,
        'шестьсот'     => 600,
        'семьсот'      => 700,
        'восемьсот'    => 800,
        'девятьсот'    => 900
    ];
 
    return preg_replace('/0(?(?=0\s\d{2,})0)\s/', '', strtr($text, $replaces));
}
0
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
31.03.2021, 11:59
* удалено )
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
31.03.2021, 12:35
Цитата Сообщение от cia Посмотреть сообщение
удалено
А что так?
Хотя и так знаю, что функция в некоторых случаях будет портить числа, если они были в исходной строке.
0
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
01.04.2021, 09:13
Цитата Сообщение от Para bellum Посмотреть сообщение
А что так?
Я ссылку указал на Intl NumberFormatter, который конвертирует число в строку. Потом понял что ошибся и вам требуется обратное, потому удалил сообщение.
Знаю что NumberFormatter и строки парсить умеет, но мне не доводилось в таком варианте его использовать.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.04.2021, 10:17
cia, я тоже первым делом Formatter'ы смотреть пошел.
Потом погуглил, нашел это: https://stackoverflow.com/ques... ers-in-php

Если подобные преобразования делать в строке, где помимо всего прочего содержатся цифры, нужно более серьезный анализатор писать.
0
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
01.04.2021, 10:24
Цитата Сообщение от Para bellum Посмотреть сообщение
Если подобные преобразования делать в строке, где помимо всего прочего содержатся цифры, нужно более серьезный анализатор писать.
Совсем не сложно "выдернуть" нужные части регулярными выражениями.
https://www.php.net/manual/ru/... llback.php
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.04.2021, 11:00
Регулярное выражение будет сложное, следовательно мы возвращаемся сюда:
Цитата Сообщение от Para bellum Посмотреть сообщение
нужно более серьезный анализатор писать
Нужно брать не только одно слово, а еще и смотреть, какое слово следует за ним и т.д. Если следующее слово обозначает число, нужно у первого убрать нужное кол-во нулей с конца, чтобы "девятьсот двадцать один" не превращалось в "90021".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2021, 11:00
Помогаю со студенческими работами здесь

Вывести цифру прописью
Сделайте вектор проведение десяти строк значения "ноль" , "один" , .. "девятку" . Используйте это в программе, которая преобразует цифру в...

Пользователь вводит цифру. Программа выводит её представление прописью
В диалоговом окне вводится символ – арабская цифра. В клетку С1 записывается эта цифра словом (например, 1 – один).

Пользователь вводит цифру. Программа выводит её представление прописью
Две задачки, помогите пожалуйста. Заранее спасибо ^_^ 2. Пользователь вводит цифру. Программа выводит на экран её представление...

Пользователь вводит цифру. Программа выводит на экран её представление прописью
Пользователь вводит цифру. Программа выводит на экран её представление прописью. Например, если ввели 7, то ответ = семь.

Определить остаток от деления на восемь введенного числа х и написать восьмеричную цифру прописью
1. Определить остаток от деления на восемь введенного числа х и написать восьмеричную цифру прописью


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru