Перейти к содержимому

Как получить дробную часть числа 1с

  • автор:

1С 8.3 Математика — Программист 1С Минск. Автоматизация бизнеса.

✔ Арифметические операции

&НаКлиенте
Процедура Арифметика ( Команда )

//Сложение
Формула_Суммы = 50 + 10 ; // Результат сложения = 60
//Разность
Формула_Вычитания = 50 — 10 ; // Результат вычитания (разности) = 40
//Произведение
Формула_Умножения = 50 * 10 ; // Результат умножения (произведения) = 500
//Частное
Формула_Деления = 50 / 10 ; // Результат деления (частное) = 5
//Остаток
Формула_Остатка_от_деления = 50 % 8 ; // Результат остатка от деления = 6

&НаКлиенте
Процедура Математика ( Команда )

//Функция округления
Результат_Окр_до_десятой = Окр ( 123.432 , 1 ); // = 123.4
Результат_Окр_до_десятой = Окр ( 123.679 , 1 ); // = 123.7

Результат_Окр_до_сотой = Окр ( 123.432 , 2 ); // = 123.43
Результат_Окр_до_сотой = Окр ( 123.679 , 2 ); // = 123.68

// Если предыдущий дробный знак = 5, а последующие = 0
// То результат округления зависит от 3-го параметра РежимОкругления
// По умолчанию = РежимОкругления.Окр15как20 (в большую сторону)
Результат_Окр_Окр15как10 = Окр ( 200.150 , 1 , РежимОкругления . Окр15как10 ); // = 200.1
Результат_Окр_Окр15как20 = Окр ( 200.150 , 1 , РежимОкругления . Окр15как20 ); // = 200.2

//Функция вычисления максимального значения из нескольких
Результат_Макс = Макс ( 1 , 2 , 3 , 4 , 5 , 6 , 7 ); // = 7
Результат_Макс = Макс ( Дата ( 1983 , 07 , 01 ), Дата ( 2020 , 04 , 17 )); // = 17.04.2020
Результат_Макс = Макс (Истина, Ложь); // = Истина
Результат_Макс = Макс ( «Alena» , «Clark» , «Boris» ); // = «Clark»

//Функция вычисления минимального значения из нескольких
Результат_Мин = Мин ( 1 , 2 , 3 , 4 , 5 , 6 , 7 ); // 1
Результат_Мин = Мин ( Дата ( 1983 , 07 , 01 ), Дата ( 2020 , 04 , 17 )); // = 01.07.1983
Результат_Мин = Мин (Истина, Ложь); // Ложь
Результат_Мин = Мин ( «Alena» , «Clark» , «Boris» ); // = «Alena»

//Функция вычисления целого числа
Результат_Цел = Цел ( 200.150 ); // = 200

//Функция возведения числа в степень
Результат_Степень = Pow ( 50 , 2 ); // 50^2 = 2500

//Функция извлечения квадратного корня из числа
Результат_КвКорень = Sqrt ( 2500 ); // √2500 = 50

&НаКлиенте
Процедура Тригонометрия ( Команда )

//Косинус угла (углы выражаются в радианах)
Результат_Косинус_угла = Cos ( 45 ); //

0.5253
//Арккосинус числа
Результат_АркКосинус_числа = ACos ( 1 ); // = 0
//Синус угла (углы выражаются в радианах)
Результат_Синус_угла = Sin ( 45 ); //

0.8509
//Арксинус числа
Результат_АркСинус_числа = ASin ( 1 ); //

1.5708
//Тангенс угла (углы выражаются в радианах)
Результат_Тагенс_угла = Tan ( 45 ); //

1.6198
//Арктангенс угла (углы выражаются в радианах)
Результат_АркТагенс_угла = ATan ( 1 ); //

0.7854
//Натуральный логарифм числа
Результат_НатЛогарифм_числа = Log ( 3 ); //

1.0986
//Десятичный логарифм числа
Результат_ДесЛогарифм_числа = Log10 ( 3 ); //

0.4771
//Exponenta — возведение основания натурального логарифма
//(числа E) 2,7182818284590452353602874713527…
// в степень: Параметр «Число»
Результат_Эксп_числаE = Exp ( 709.78271289338397 ); //709.782712893

Работа с числами в 1С 8.2 и 8.3

Число — это один из примитивных типов данных существующих в 1С. Числа в 1С:Предприятии встречаются абсолютно везде и всюду. Следовательно важность знания функций для работы с числами трудно переоценить. К рассмотрению этих функций и приступим.

В начале скажем, что максимальная разрядность для числа равняется 38-ми знакам, при этом для целой части выделено 32 символа.

При этом в конфигураторе можно указать длину числа в 64 символа (при точности в 32 символа), но это вероятно какая-то ошибка, так как при попытке обновить конфигурацию Вы увидите нечто подобное:

Ошибка конфигуратора

Ошибка конфигуратора

С числами в 1С можно выполнять все стандартные арифметические операции:

  • “+” — сложение;
  • “-” — вычитание;
  • “*” — умножение;
  • “/” — деление;
  • “%” — остаток от деления.

Функции для работы с числами в 1С 8.2 и 8.3

Функция Окр(x, y, z) позволяет округлить число “x” в зависимости от заданной разрядности “y” и режима округления “z”.

Программа 1С: Дробное число

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

1. Особенности в программе 1С: дробные числа

Любые числа в 1С принадлежат одному и тому же типу данных. Система счисления программы – десятичная, то есть все входные и выходные значения будут содержать только цифры от 0 до 9. Фактически, целое или дробное значение будет расценено программой одинаково.

Чтобы отделить целую часть от дробной, используется символ «.». Например: 0.5, 3.14, -123.456. Запятая на месте разделителя не позволит считать число корректно. Предельное число разрядов (включая знаки) – 38.

В коде программы не обязательно указывать десятичную дробь. Например, запись 1 2 дробью будет автоматически вычислена при запуске кода. То же правило относится к арифметическому типу выражения и стандартным математическим функциям.

2. Получение целой и дробной части числа 1С

Для получения целой части в программе существует функция Цел(<Число>). В качестве примера, определим, делится ли число А на число В.

Если Цел(С) = С Тогда

Число 125 нацело не разделилась на 6: целая часть результата деления меньше всего частного. Программа выдаст ответ «Нет».

Чтобы получить только дробные разряды, нужно вычесть из числа его целую часть. Например:

ДЧасть = А — Цел(А);

В данном случае переменная ДЧасть примет значение 0.456.

3. Функция округление в запросе 1С

Функция Окр(<Число>, <Разрядность>, <РежимОкругления>) позволяет округлить число по заданным пользователем правилам.

1. <Число> – заданное пользователем число для выполнения функции;

2. <Разрядность> – знак после запятой, до которого происходит округление в запросе 1С. Нулевое значение будет соответствовать округлению до целого значения, отрицательное – до десятков, сотен и т.д.

3. <РежимОкругления> – 0 или 1. Если пользователь передал в параметр нулевое значение, разряд 5 будет округляться в меньшую сторону, если передана единица, то в большую.

Функция округления в запросе 1С очень полезна на практике, так как после применения формул или перевода в другие единицы могут образовываться десятки дробных разрядов, которыми оптимально пренебречь.

4. Функции работы с дробными числами 1С

Функция Pow(<Основание>, <Показатель>) возводит число в степень. Дробный показатель степени позволяет получать значения корней.

Функции для работы с числами в 1С

Для получения целой части числа можно использовать функцию Цел. Для получения дробной части нужно из исходного числа вычесть целую часть:

Округление чисел

Для округления чисел в 1С предназначена функция Окр. Первым параметром передается само число, вторым — количество знаков после запятой, до которых нужно округлить. Если вторым параметром передать отрицательное число, то будет выполнено округление до соответствующего разряда в целой части, начиная с младших разрядов (-1 до десятков, -2 до сотен и т.д.). Третьим параметром указывается режим округления: если 0, то число 1.5 округляется до 1, если 1, то 1.5 округляется до 2.

Округление всегда в большую сторону

Число = 11.2345;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Число = 11.01;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Число = 11.99;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Для получения натурального логарифма используется функция Log, для десятичного — Log10:

Тригонометрические функции

В 1С можно рассчитывать синус, косинус, тангенс, арксинус, арккосинус, арктангенс:

Число = 0;
Арксинус = ASin(Число); //0
Арккосинус = ACos(Число); //

Возведение в степень

Возвести в степень можно двумя функция: Exp — возводит основание натурального логарифма (

2.72) в переданную ей параметром степень; Pow — можно передать как основание, так и показатель степени:

Число = 2;
Степень = 3;
ЧислоВКубе = Pow(Число, Степень); //8


Квадратный корень

Для получения квадратного корня можно воспользоваться функцией Sqrt:

Перевод в десятичную систему счисления

С помощью функций ЧислоИзШестнадцатеричнойСтроки и ЧислоИзДвоичнойСтроки можно получить десятичное число из шестнадцатиричного и двоичного числа. Обе функции параметром принимают строки. Для функции ЧислоИзШестнадцатеричнойСтроки строка должна начинаться с «0x», для функции ЧислоИзДвоичнойСтроки с «0b»:

Получение максимума и минимума

Для получения максимального и минимального числа можно использовать функции Макс и Мин. Параметром можно передать неограниченное количество чисел, через запятую:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *