|
ymkWor2008
|
|
Формат числа, округление, число знаков после запятой.17.04.2008, 08:24. Показов 178898. Ответов 18
Метки нет (Все метки)
Здравствуйте.
подскажите как указать что переменная будет иметь только два символа после запятой, а все остальное округлять? не реквезит документа, а просто переменная? Крнечно можно сделать специальный реквизит в документе, где и обрезать лишние символы, но хотелось бы все таки узнать как сделать это с простой переменной? |
|
| 17.04.2008, 08:24 | |
|
Ответы с готовыми решениями:
18
Количество знаков после запятой у Заголовка Добавить числа после запятой
|
|
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
| 17.04.2008, 09:53 | |
|
1. Чем не устраивает функция округления при присвоении значения переменной?
2. Я таки не понял, вам надо округлять до определенной точности или обрезать лишние символы?
0
|
|
|
ymkWor2008
|
|
| 17.04.2008, 10:16 | |
|
вот к примеру
вот этол число храниться в переменной Переменная = 800.304 мне надо что оно округлялолось и имело два символа после запятой вот такого вида: 800.31 |
|
|
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
|
|||||||
| 17.04.2008, 11:35 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 152
|
|
| 17.04.2008, 14:51 | |
|
Взять дробную часть, оставить ДВА знака, проанализировать хвост и если он больше нуля, прибавить единицу к последнему знаку дробной части...
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2007
Сообщений: 50
|
|
| 17.04.2008, 15:03 | |
|
Isabela, поддерживаю Вас.
Добавлю, что я для подобных преобразований переводил бы число в строку, а потом обратно в число.
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 152
|
|
| 17.04.2008, 17:24 | |
|
ну, в этом вряд ли есть необходимость - все дело просто в десятичной арифметике - задачка для пятиклассника
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2007
Сообщений: 50
|
|
| 17.04.2008, 17:34 | |
|
ну да, может быть... ;)
0
|
|
|
0 / 0 / 0
Регистрация: 31.01.2008
Сообщений: 89
|
|
| 17.04.2008, 18:51 | |
|
Переменная = Формат(выражение,"Ч12.2")
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 152
|
|
| 18.04.2008, 00:29 | |
|
Ну, замечательно.
прогоните код X = 800.304; XX = Format(X,"N12.2"); Message(XX); и получите 800.30 ! Нет в 1с стандартных способов округления в бОльшую сторону, если первая отбрасываемая цифра меньше 5 Поэтому придется не полениться и написать несколько строчек, реализующих это
0
|
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 18.04.2008, 01:21 | |
|
Вот возможный пример для ленивых
Function RoundUpToNextFractional(x,n) // x - число на входе // n - количество знаков после запятой, которое следует преобразовать так, как хотел вопрошающий D = 1; for k = 1 to n do D = D*10 // увы, степени в 1с нет ! enddo; xx = x*D; if (xx-INT(xx) > 0) AND (xx-INT(xx) < 0.5) then xx = Round(xx/D+1/(D-1),2,0) else xx = Round(xx/D,2,1) endif; Return xx endFunction
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 152
|
|
| 18.04.2008, 02:37 | |
|
А мне вот довелось реализовывать формулу, содержащую ОТРИЦАТЕЛЬНУЮ степень в 1с
Так я не нашла ничего лучшего, нежели притянуть макрос из Excel И вышло примерно так (в глобальном модуле): Function Degree(x,y) Export ExcelApp = CreateObject("Excel.Application"); NewWorkBooks = ExcelApp.WorkBooks; WorkBook = NewWorkBooks.Add(); Page = WorkBook.Worksheets(1); XCol = Page.Columns(1); YCol = Page.Columns(2); RCol = Page.Columns(3); XCell = ExcelApp.Cells(2,1); XCell.Value = x; YCell = ExcelApp.Cells(2,2); YCell.Value = y; RCell = ExcelApp.Cells(2,3); RCell.FormulaR1C1 = "=POWER(RC[-2],RC[-1])"; ExcelApp.Visible = 0; Result = RCell.Value; //Message(Result); ExcelApp.Quit(); Return Result; EndFunction Подскажите более изящное решение
0
|
|
|
Sytvyr Wymd
|
|||
| 22.04.2008, 11:26 | |||
x^y=EXP(y*LN(x)) а в 1С8 есть
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 152
|
|
| 22.04.2008, 11:54 | |
|
А ты пробовал, как это (x^y=EXP(y*LN(x))) будет работать в 7.7 ? Написать-то можно что угодно...
0
|
|
|
Sytvyr Wymd
|
|
| 22.04.2008, 12:54 | |
|
М-да, действительно, EXP() в 7.7 вообще нет, а Лог() только для положительных. Жесть. У меня раньше небходимиости ими пользоваться в 1С не возникало, но я и предположить не мог, что они отсутствуют среди стандартных функций.
В таком случае нашлась по поиску вот такая информация - глянь, может подойдет http://www.sinor.ru/~my1c/knowhow/addmath.html. |
|
|
Ftut
|
|
| 22.04.2008, 14:07 | |
|
А если так?
X = Цел(Переменная * 100)/100; Y = Переменная - X; Переменная = ?(Y <> 0,Цел(Переменная*100)/100 + 0.01,Переменная); |
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 22.04.2008, 21:06 | |
|
Ага, для округления вверх до второго знака и это сгодится, ну а если потребуется "округлять" до 3-го, 4-го и т.п. ?
Вроде, процедурку употребить в самый раз
0
|
|
|
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
| 23.04.2008, 09:14 | |
|
vbs
Тогда в том, что написал Flut рекурсивно умножать и делить на 10 ОФФ: А вообще чувствуется, что на форум начали подтягиваться Программисты, потому как большинство тем перетекает из формата криков о помощи в русло обсуждений алгоритмов и реализации оных.
0
|
|
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
| 23.04.2008, 13:55 | |
|
Так, на мой взгляд, форум именно на это и ориентирован в первую очередь. Я помню первое знакомство с 1С 11 лет назад. Полдня тупо смотрел на отчет "ОстаткиТоваров", пока понял, как в принципе формируются данные (надо было вставить еще одну колонку в таблицу), так что начинающему (даже и с опытом программирования в иных средах) стоит пару-тройку месяцев поразбираться самостоятельно, обложившись стопкой ЖКК. Действительно, многие "крики о помощи" вызывают снисходительную улыбку. Без многомесячной кропотливой работы, увы, не обойтись !
0
|
|
| 23.04.2008, 13:55 | |
|
Помогаю со студенческими работами здесь
19
Округление числа до двух знаков после запятой
Функция round(), округление числа до 4-х знаков после запятой Округление числа в строке до указанного количества знаков после запятой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|