Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Math вывод результата
DoXeRДата: Пт, 17 Октября 2014, 20:35 | Сообщение # 1
Участник
Привет, пользуюсь функцией Math, результаты вычислений иногда имеют порядка 6-7 цифр.
Как можно выводить результат вычислений с пробелами или с точками?
Т.е. полученные числа, например:
100000
2000000
10000000

Нужно их выводить с таким видом:
100 000
2 000 000
10 000 000
или
100.000
2.000 000
1.000 0000
и т.д
 
СообщениеПривет, пользуюсь функцией Math, результаты вычислений иногда имеют порядка 6-7 цифр.
Как можно выводить результат вычислений с пробелами или с точками?
Т.е. полученные числа, например:
100000
2000000
10000000

Нужно их выводить с таким видом:
100 000
2 000 000
10 000 000
или
100.000
2.000 000
1.000 0000
и т.д

Автор - DoXeR
Дата добавления - 17 Октября 2014 в 20:35
RezzoxeДата: Пт, 17 Октября 2014, 21:46 | Сообщение # 2

Math "1020110+10240" "0" "[Result]"
StrLen "[Result]" "[StrLen]"
IfEx "[StrLen]>3 and [StrLen]<7"
Math "[StrLen]-2" "0" "[InsNum]"
StrIns "." "[Result]" "[InsNum]" "[AbsResult]"
Else
If "[StrLen]" ">" "6"
Math "[StrLen]-5" "0" "[InsNum1]"
StrIns "." "[Result]" "[InsNum1]" "[Result1]"
StrLen "[Result1]" "[StrLen]"
Math "[StrLen]-2" "0" "[InsNum2]"
StrIns "." "[Result1]" "[InsNum2]" "[AbsResult]"
EndIf


Не отрицаю, может есть и более сокращенный вариант... делал на скорую руку


Сообщение отредактировано
Rezzoxe - Вс, 19 Октября 2014, 11:30
 
Сообщение
Math "1020110+10240" "0" "[Result]"
StrLen "[Result]" "[StrLen]"
IfEx "[StrLen]>3 and [StrLen]<7"
Math "[StrLen]-2" "0" "[InsNum]"
StrIns "." "[Result]" "[InsNum]" "[AbsResult]"
Else
If "[StrLen]" ">" "6"
Math "[StrLen]-5" "0" "[InsNum1]"
StrIns "." "[Result]" "[InsNum1]" "[Result1]"
StrLen "[Result1]" "[StrLen]"
Math "[StrLen]-2" "0" "[InsNum2]"
StrIns "." "[Result1]" "[InsNum2]" "[AbsResult]"
EndIf


Не отрицаю, может есть и более сокращенный вариант... делал на скорую руку

Автор - Rezzoxe
Дата добавления - 17 Октября 2014 в 21:46
DEMBELДата: Пт, 17 Октября 2014, 21:50 | Сообщение # 3
Наш дизайнер
В библиотеке функций есть пример - VBScript Examples\Format Currency (формат в виде валюты), берешь на его основе и делаешь свою функцию с FormatNumber
чтото типа этого (все по-умолчанию):
publication.nbSetVar "[%2]", FormatNumber([%1],-1,-2,-2,-1)

разделитель для группы задается в региональных настройках системы (пробел), думаю лучше его не трогать. Но если хочется, можно написать ручное форматирование как показано выше.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеВ библиотеке функций есть пример - VBScript Examples\Format Currency (формат в виде валюты), берешь на его основе и делаешь свою функцию с FormatNumber
чтото типа этого (все по-умолчанию):
publication.nbSetVar "[%2]", FormatNumber([%1],-1,-2,-2,-1)

разделитель для группы задается в региональных настройках системы (пробел), думаю лучше его не трогать. Но если хочется, можно написать ручное форматирование как показано выше.

Автор - DEMBEL
Дата добавления - 17 Октября 2014 в 21:50
PeterДата: Сб, 18 Октября 2014, 00:13 | Сообщение # 4
Админ NeoBook
Ну, подобная задача вполне по силам NB.
Правда, тут нужно учитывать одну тонкость: результат команды Math может быть в виде десятичной дроби (Decimal), т.е. с количеством символов после запятой (точность результата, задаваемая пользователем).
Разделительный символом является переменная [DecimalSymbol], поэтому анализировать строку нужно с учетом вывода результата с разделителем.

А в целом, соответствующая необушная функция может выглядеть примерно так: см. прикрепление.
Это всего-лишь прототип, может кто и напишет симпатичнее....
;)
Прикрепления: FormatNumber.rar (0.6 Kb)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеНу, подобная задача вполне по силам NB.
Правда, тут нужно учитывать одну тонкость: результат команды Math может быть в виде десятичной дроби (Decimal), т.е. с количеством символов после запятой (точность результата, задаваемая пользователем).
Разделительный символом является переменная [DecimalSymbol], поэтому анализировать строку нужно с учетом вывода результата с разделителем.

А в целом, соответствующая необушная функция может выглядеть примерно так: см. прикрепление.
Это всего-лишь прототип, может кто и напишет симпатичнее....
;)

Автор - Peter
Дата добавления - 18 Октября 2014 в 00:13
RezzoxeДата: Сб, 18 Октября 2014, 20:41 | Сообщение # 5
Кстати, так, ещё для галочки... готовая команда имеется в плагине rlFunctions
http://neobooker.ru/forum/37-2255-1

Имя команды: rlInsertComma
 
СообщениеКстати, так, ещё для галочки... готовая команда имеется в плагине rlFunctions
http://neobooker.ru/forum/37-2255-1

Имя команды: rlInsertComma

Автор - Rezzoxe
Дата добавления - 18 Октября 2014 в 20:41
PeterДата: Сб, 18 Октября 2014, 22:16 | Сообщение # 6
Админ NeoBook
Цитата Rezzoxe ()
Имя команды: rlInsertComma

К сожалению, эта функция не очень-то подходит в данном случае, т.к. она как-раз и не учитывает то, что результат вычисления (на входе) может быть в виде десятичной дроби, и поэтому от предварительной обработки входного аргумента в NB (поиск и отсечение дробной части, если она имеется) никуда не деться.
К тому же, как я понял, эта команда плагина может вставлять только запятую в строку, и не может пробел.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата Rezzoxe ()
Имя команды: rlInsertComma

К сожалению, эта функция не очень-то подходит в данном случае, т.к. она как-раз и не учитывает то, что результат вычисления (на входе) может быть в виде десятичной дроби, и поэтому от предварительной обработки входного аргумента в NB (поиск и отсечение дробной части, если она имеется) никуда не деться.
К тому же, как я понял, эта команда плагина может вставлять только запятую в строку, и не может пробел.

Автор - Peter
Дата добавления - 18 Октября 2014 в 22:16
RezzoxeДата: Сб, 18 Октября 2014, 22:32 | Сообщение # 7
Цитата Peter ()
десятичной дроби

Могу и ошибаться, но у меня имеются некоторые сомнения в надобности дробей в данном случае ;)

Цитата Peter ()
К тому же, как я понял, эта команда плагина может вставлять только запятую в строку, и не может пробел.

Как бы странно и дико это не выглядело, но можно использовать плагин для последующей
корректировки за счёт команды замены символов :D
Впрочем, лучше всё же будет дождаться ТС :)


Сообщение отредактировано
Rezzoxe - Сб, 18 Октября 2014, 22:33
 
Сообщение
Цитата Peter ()
десятичной дроби

Могу и ошибаться, но у меня имеются некоторые сомнения в надобности дробей в данном случае ;)

Цитата Peter ()
К тому же, как я понял, эта команда плагина может вставлять только запятую в строку, и не может пробел.

Как бы странно и дико это не выглядело, но можно использовать плагин для последующей
корректировки за счёт команды замены символов :D
Впрочем, лучше всё же будет дождаться ТС :)

Автор - Rezzoxe
Дата добавления - 18 Октября 2014 в 22:32
PeterДата: Сб, 18 Октября 2014, 22:38 | Сообщение # 8
Админ NeoBook
Цитата Rezzoxe ()
имеются некоторые сомнения в надобности дробей в данном случае ;)

А вот это уже определяется самим пользователем нужны ему дроби или не нужны, но функция должна быть универсальной.
Цитата Rezzoxe ()
но можно использовать плагин для последующей

Плагины нужно использовать только тогда, когда сама NB либо не справляется, либо - справляется, но не достаточно эффективно.
В данном же случае, задача форматирование результата вычислений для NB - пара пустяков.
:)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата Rezzoxe ()
имеются некоторые сомнения в надобности дробей в данном случае ;)

А вот это уже определяется самим пользователем нужны ему дроби или не нужны, но функция должна быть универсальной.
Цитата Rezzoxe ()
но можно использовать плагин для последующей

Плагины нужно использовать только тогда, когда сама NB либо не справляется, либо - справляется, но не достаточно эффективно.
В данном же случае, задача форматирование результата вычислений для NB - пара пустяков.
:)

Автор - Peter
Дата добавления - 18 Октября 2014 в 22:38
mishemДата: Вс, 19 Октября 2014, 02:27 | Сообщение # 9
Эксперт форума
Эта тема уже поднималась Callisto по моему где то. У меня даже еще проект с тех времен завалялся.
Правда дробную часть по моему не обсуждали.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеЭта тема уже поднималась Callisto по моему где то. У меня даже еще проект с тех времен завалялся.
Правда дробную часть по моему не обсуждали.

Автор - mishem
Дата добавления - 19 Октября 2014 в 02:27
CallistoДата: Вс, 19 Октября 2014, 03:03 | Сообщение # 10
Участник
Цитата mishem ()
Эта тема уже поднималась Callisto по моему где то
Yes, of course :)
Тута


Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
 
Сообщение
Цитата mishem ()
Эта тема уже поднималась Callisto по моему где то
Yes, of course :)
Тута

Автор - Callisto
Дата добавления - 19 Октября 2014 в 03:03
DEMBELДата: Вс, 19 Октября 2014, 05:33 | Сообщение # 11
Наш дизайнер
что вы обсуждаете разделитель дроби, ТС надо целочисленную часть отформатировать в удобном виде

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениечто вы обсуждаете разделитель дроби, ТС надо целочисленную часть отформатировать в удобном виде

Автор - DEMBEL
Дата добавления - 19 Октября 2014 в 05:33
PeterДата: Вс, 19 Октября 2014, 05:47 | Сообщение # 12
Админ NeoBook
Цитата DEMBEL ()
что вы обсуждаете разделитель дроби, ТС надо целочисленную часть

"Хороший программист — это тот, кто..."
10 способов стать хорошим программистом.

Кстати, ТС не утверждал, что ему надо только и именно целочисленную часть окучивать.
Разумнее и перспективнее универсальное решение - не только ТС может пригодиться.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата DEMBEL ()
что вы обсуждаете разделитель дроби, ТС надо целочисленную часть

"Хороший программист — это тот, кто..."
10 способов стать хорошим программистом.

Кстати, ТС не утверждал, что ему надо только и именно целочисленную часть окучивать.
Разумнее и перспективнее универсальное решение - не только ТС может пригодиться.

Автор - Peter
Дата добавления - 19 Октября 2014 в 05:47
  • Страница 1 из 1
  • 1
Поиск: