|
ymkWor2008
|
|
Формат числа, округление, число знаков после запятой.17.04.2008, 08:24. Показов 178991. Ответов 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-х знаков после запятой Округление числа в строке до указанного количества знаков после запятой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|