Получение целого числа

Тема в разделе "1C и всё что с ней связано", создана пользователем SeverBap, 13 ноя 2008.

  1. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Есть процедура:
    Код (Text):
    Процедура ПодсчетОстатков()
    ДробныеОстатки=0;
    Сч=0;
    ТаблицаДанных.ВыбратьСтроки();
    Пока ТаблицаДанных.ПолучитьСтроку()=1 Цикл
    Если ТаблицаДанных.Статус=6 Тогда
    ДробныеОстатки=(ТаблицаДанных.СуммаУстановки-Цел(ТаблицаДанных.СуммаУстановки))*ТаблицаДанных.КоличествоСтрок();
    //ДробныеОстатки=ДробныеОстатки+Число((ТаблицаДанных.СуммаУстановки-Цел(ТаблицаДанных.СуммаУстановки)));
    ТаблицаДанных.СуммаУстановки=Цел(ТаблицаДанных.СуммаУстановки);
    Сообщить(ДробныеОстатки);
    Сч=Сч+1;
    КонецЕсли;
    //Прервать;
    КонецЦикла;
    ПоследняяСуммаУстановки=Цел(ДробныеОстатки);
    Сообщить(ПоследняяСуммаУстановки);
    ДробныеОстатки=ДробныеОстатки-ПоследняяСуммаУстановки;
    ТаблицаДанных.ВыбратьСтроки();
    Пока ПоследняяСуммаУстановки>=1 Цикл
    ТаблицаДанных.ПолучитьСтроку();
    Если ТаблицаДанных.Статус=6 Тогда
    Если ПоследняяСуммаУстановки>=1 Тогда
    ТаблицаДанных.СуммаУстановки=ТаблицаДанных.СуммаУстановки+1;
    ПоследняяСуммаУстановки=ПоследняяСуммаУстановки-1;
    ИначеЕсли ТаблицаДанных.СуммаОграничение>ТаблицаДанных.СуммаУстановки+1 Тогда
    ТаблицаДанных.СуммаУстановки=ТаблицаДанных.СуммаУстановки+ПоследняяСуммаУст
    ановки;
    ПоследняяСуммаУстановки=ПоследняяСуммаУстановки-ПоследняяСуммаУстановки;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Сообщить(ПоследняяСуммаУстановки);
    КонецПроцедуры
    Проблема в этом месте:
    Код (Text):
        ПоследняяСуммаУстановки=Цел(ДробныеОстатки);
    Сообщить(ПоследняяСуммаУстановки);
    Допустим ДробныеОстатки=75, после применения метода Цел() ПоследняяСуммаУстановки=74!!!!!! - почему так и в чем причина????
    :rolleyes:
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Знаешь - я сам как-то видел что число (высчитывало по формуле, присваивалось реквизиту с 2 знаками , число вроде 217,555) при округлении до второго знака с выставленным правилом окпугления в меньшую сторону округляло в большую. Лечилось только ОКР() до присваивания значения. Мож тебе лучше не ЦЕЛ а ОКР?
    Посмотри ещё
    ПоследняяСуммаУстановки=Цел(ДробныеОстатки);
    Сообщить("ДР " + ДробныеОстатки);
    Сообщить(ПоследняяСуммаУстановки);
     
  3. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Смотрели все, - всеми сообщениями и всем бюро, всеравно такая борода!!! :(
     
  4. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Слух, а что будет если ты сделаешь так:
    ПоследняяСуммаУстановки=Цел(ОКР(ДробныеОстатки));
     
Загрузка...

Поделиться этой страницей