powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование и форматирование числа в строку
21 сообщений из 21, страница 1 из 1
Преобразование и форматирование числа в строку
    #35936522
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите пожалуйста преобразовать число 73146000 в строку и отформатировать ее к виду: 73 146 000р. в построителе выражений для отчета.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936551
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему именно преобразовать в строку? А просто денежный формат поля в отчете тебе не подойдет? Видимый результат абсолютно такой же как ты просил.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936556
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
format(73146000,"### ### ###")&"р."
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936588
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Санычformat(73146000,"### ### ###")&"р."
Владимир Саныч, решеток можно и поменьше Достаточно "# ###"
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936598
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexBessonovА почему именно преобразовать в строку? А просто денежный формат поля в отчете тебе не подойдет? Видимый результат абсолютно такой же как ты просил.
Дело в том, что необходимо чтобы значение переменной, содержащей агрегированное значение являло собой часть в одной большой строке, например:
Код: plaintext
='Всего по счету '+[ContractInternal_1]+': '+CStr(Count(*))+' сделок, '+CStr(Sum([LotCount]))+' лотов, '+CStr(Sum([O]))+' рублей.'
Выглядело это так:
Код: plaintext
Всего по счету R0013: 13 сделок, 25 лотов, 73146000 рублей.
Но только та часть строки, которая содержит деньги, была отформатирована.
P.S. Видимо изначально некорректно сформулировал вопрос, под конец дня голова кипит :-)
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936618
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Санычformat(73146000,"### ### ###")&"р."
Вот и все заработало:
Код: plaintext
='Всего по счету '+[ContractInternal_1]+': '+CStr(Count(*))+' сделок, '+CStr(Sum([LotCount]))+' лотов, '+Format(Sum([O]);"# ###")+' рублей.'
Большое всем спасибо!
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936649
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно в принципе "рублей" писать сразу в формате поля:
Код: plaintext
=Format([Деньги];"# ###"" рублей""")
Но это так, к слову. Разницы почти никакой
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936664
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AlexBessonovВладимир Санычformat(73146000,"### ### ###")&"р."
Владимир Саныч, решеток можно и поменьше Достаточно "# ###"
Я проверил, прежде чем написать. Почему-то формат "# ###" дал мне 73146 000p., без первого пробела.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936679
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычЯ проверил, прежде чем написать. Почему-то формат "# ###" дал мне 73146 000p., без первого пробела.
Хм. Владимир Саныч, я бы тоже без проверки не решился давать советы такому "монстру"
Правда проверял я в 2007-м.
Код: plaintext
=Format([Деньги];"# ###"" рублей""")
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936741
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Может, это как-то связано с региональными настройками...
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936819
Владимир СанычМожет, это как-то связано с региональными настройками...
Нет, это связано с местом применения функции Format. В коде VBA это выглядит так:
?Format(123456789.123,"# , ### . 00"" рублей""")
123 456 789.12 рублей
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936852
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Анатолий ( Киев )Владимир СанычМожет, это как-то связано с региональными настройками...
Нет, это связано с местом применения функции Format. В коде VBA это выглядит так:
?Format(123456789.123,"# , ### . 00"" рублей""")
123 456 789.12 рублей
Этот код у меня вставляет запятые. Что это, если не региональные настройки?
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936916
Владимир СанычЭтот код у меня вставляет запятые. Что это, если не региональные настройки?
А что вернет Format(123456789.123,"Currency")? Если запятые, то в ваших региональных настройках указана ",". Замените на "_" - их и вернет.
У меня, кстати, пробел в шаблоне дает то же, что и у вас.
?Format(123456789.123,"# ###.00"" рублей""")
123456 789.12 рублей
Т.е. пробел принимается как литерал. Пример ниже добавляет лишний лидирующий пробел.
?Format(123456789.123,"### ### ### ###.00"" рублей""")
123 456 789.12 рублей
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35936945
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Анатолий ( Киев )А что вернет Format(123456789.123,"Currency")? Если запятые, то в ваших региональных настройках указана ",". Замените на "_" - их и вернет.
Именно. Так что дело таки в настройках.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35937051
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СанычAlexBessonovВладимир Санычformat(73146000,"### ### ###")&"р."
Владимир Саныч, решеток можно и поменьше Достаточно "# ###"
Я проверил, прежде чем написать. Почему-то формат "# ###" дал мне 73146 000p., без первого пробела.
Я обратил внимание на то, что в этом месте форматирование текста происходит корректно (если писать это в функции Format), а если в отчете у элемента управления "поле" в свойстве "Формат поля" написать "# ###", то например, вместо 16 000 форматирует как 160 00
Но ведь результат должен быть одинаковым! Вообще я не устаю поражаться компанией Microsoft. Что от чего зависит в некоторых случаях, как например этот - это тайна, наверное даже для самой компании Microsoft.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35937719
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rsolanov... а если в отчете у элемента управления "поле" в свойстве "Формат поля" написать "# ###", то например, вместо 16 000 форматирует как 160 00...
Проверил, у меня выдает правильно 16 000. Все чудесатее и чудесатее.
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35937779
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Т.е. пробел принимается как литерал. Пример ниже добавляет лишний лидирующий пробел.
?Format(123456789.123,"### ### ### ###.00"" рублей""")
123 456 789.12 рублей


?Format(89.123,"### ### ### ###.00"" рублей""")

вернёт 3 лидирующий пробела


LTrim(Format(89.123,"### ### ### ###.00"" рублей"""))

если уж извращаться......
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35937834
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для универсализма

Код: plaintext
1.
Replace(LTrim(Format( 89 . 123 ,"### ### ### ###.00"" рублей""")),mid(cstr( 1 / 2 ), 2 , 1 ),"-")
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #35937980
AlexBessonovrsolanov... а если в отчете у элемента управления "поле" в свойстве "Формат поля" написать "# ###", то например, вместо 16 000 форматирует как 160 00...
Проверил, у меня выдает правильно 16 000. Все чудесатее и чудесатее. rsolanov, что у вас возвращает Debug.Print Me![Поле].Format?
У меня при формате поля # ###" р." поле показывает 16 000 р., а при # ### " р." (пробел перед кавічкой) - 16 р., и это - ПРАВИЛЬНО!HELPДва соседних разделителя групп разрядов или разделитель групп разрядов, стоящие сразу перед десятичным разделителем (даже если символ десятичного разделителя не указан явно), означают, что масштаб числа следует изменить, разделив его указанное число раз на 1000 и округлив по мере надобности. Такой способ позволяет выводить большие числа. Например, строка формата "##0,," отображает сто миллионов как 100, а числа, меньшие одного миллиона, как 0. Два соседних разделителя групп разрядов, находящихся в любой другой позиции, обрабатываются как один разделитель групп разрядов. Фактический символ, используемый в качестве разделителя групп разрядов, определяется установленным в системе числовым форматом. ?Format(16000,"#,###,")
16
?Format(16000000,"#,###,,")
16
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Преобразование и форматирование числа в строку
    #39869652
Эквисакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rsolanov,
="Итого " & Format(Sum([Количество]);"С разделителями разрядов") & "шт на сумму" & Format(Sum([Сумма]);"С разделителями разрядов") & "руб"
...
Рейтинг: 0 / 0
Преобразование и форматирование числа в строку
    #39869664
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эквисаксrsolanov,
........... :) А на дату топика смотрели?:)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование и форматирование числа в строку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]