Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Какое максимально возможное число в 1с? (число прочтений - 8135 )
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Какое максимально возможное число в 1с?
25. Июля 2008 :: 07:39
Печать  
Для реквизита формы можно выставить максимум 19 знаков, но на самом деле 1с может оперировать и с более большими числами. Как узнать максимальное?
  
Наверх
ICQ  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #1 - 25. Июля 2008 :: 09:19
Печать  
Nick писал(а) 25. Июля 2008 :: 07:39:
Для реквизита формы можно выставить максимум 19 знаков, но на самом деле 1с может оперировать и с более большими числами. Как узнать максимальное?

9999999999999999999999999999999999999999999999999999999999999999
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #2 - 25. Июля 2008 :: 09:20
Печать  
Код
Выбрать все
Процедура Сформировать()
	тест = "9";
	Пока 1=1 Цикл
		Сообщить(Число(тест));
		Сообщить(Число(тест) + 1);
		тест = тест + 9;
	КонецЦикла;
КонецПроцедуры 


  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #3 - 25. Июля 2008 :: 09:34
Печать  
Спасибо Улыбка
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Какое максимально возможное число в 1с?
Ответ #4 - 25. Июля 2008 :: 09:41
Печать  
Nick писал(а) 25. Июля 2008 :: 07:39:
Для реквизита формы можно выставить максимум 19 знаков, но на самом деле 1с может оперировать и с более большими числами. Как узнать максимальное?

Нет максимального числа.
Ограничения только по доступной памяти и быстродействию.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #5 - 25. Июля 2008 :: 10:02
Печать  
kms писал(а) 25. Июля 2008 :: 09:41:
Нет максимального числа.
Ограничения только по доступной памяти и быстродействию.


а как же тогда объяснить загадочное поведение обработки??
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Какое максимально возможное число в 1с?
Ответ #6 - 25. Июля 2008 :: 10:10
Печать  
Pelmen писал(а) 25. Июля 2008 :: 10:02:
а как же тогда объяснить загадочное поведение обработки??

Тем, что ты конвертацию тестишь, а не числа.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
nikolka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 15. Января 2007
Re: Какое максимально возможное число в 1с?
Ответ #7 - 25. Июля 2008 :: 10:24
Печать  
kms писал(а) 25. Июля 2008 :: 10:10:
Pelmen писал(а) 25. Июля 2008 :: 10:02:
а как же тогда объяснить загадочное поведение обработки??

Тем, что ты конвертацию тестишь, а не числа.

X=9999999999999999999999999999999999999999999999999999999999999999;
Сообщить(X);
X=X*X;
Сообщить(X);
Первое сообщить выдает
9999999999999999999999999999999999999999999999999999999999999999
второе
9999999999999999999999999999999999999999999999999999999999999998

Как это понять?
Почему это так ?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Какое максимально возможное число в 1с?
Ответ #8 - 25. Июля 2008 :: 10:33
Печать  
Думай, Петька, Думай (с) Василь Иваныч

hint:
Код
Выбрать все
9999999999999999999999999999999999999999999999999999999999999999^2 ==
000000000000000000000000000000000000000000000001
 

  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #9 - 25. Июля 2008 :: 10:44
Печать  
Код
Выбрать все
X1=9999999999999999999999999999999999999999999999999999999999999999;
Сообщить(X1);
X2=X1*X1*X1;
Сообщить(X2);
X2=X2/X1/X1;
Сообщить(X2);
 


Цитата:
9999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999997
9999999999999999999999999999999999999999999999999999999999999999

имеет место ограничение при конвертации числа в строку, а не ограничение на разрядность чисел и операций над ними.
Подтверждаю что числа в 1С (CNumeric) имеют динамическую природу и аграничены только виртуальной памятью
  

1&&2&&3
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #10 - 25. Июля 2008 :: 10:58
Печать  
Обалдеть Улыбка
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #11 - 25. Июля 2008 :: 11:14
Печать  
Новый оклад себе расчитываешь?  Подмигивание
  
Наверх
 
IP записан
 
nikolka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 15. Января 2007
Re: Какое максимально возможное число в 1с?
Ответ #12 - 25. Июля 2008 :: 11:30
Печать  
trad писал(а) 25. Июля 2008 :: 10:44:
Код
Выбрать все
X1=9999999999999999999999999999999999999999999999999999999999999999;
Сообщить(X1);
X2=X1*X1*X1;
Сообщить(X2);
X2=X2/X1/X1;
Сообщить(X2);
 


Цитата:
9999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999997
9999999999999999999999999999999999999999999999999999999999999999

имеет место ограничение при конвертации числа в строку, а не ограничение на разрядность чисел и операций над ними.
Подтверждаю что числа в 1С (CNumeric) имеют динамическую природу и аграничены только виртуальной памятью

Как храниться CNumeric
и как быстро вытащить все цифры из него?



  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #13 - 25. Июля 2008 :: 11:53
Печать  
nikolka писал(а) 25. Июля 2008 :: 11:30:
Как храниться CNumeric

     int m_0;
     int m_nBufferLen;
     int m_nUsedLen;
     int m_nScaleLen;
     short m_Sign;
     int m_ScaleFactor;
     UINT *m_pBuffer;
     UINT m_Buffer[4];
если число не "очень большое", то оно храниться в 16 байтах m_Buffer
если число "очень большое", то оно храниться в динамически выделенном буфере на который указывыает m_pBuffer
Только не спрашивай как происходят мат.операции и перевыделение буфера. Не изучал.
nikolka писал(а) 25. Июля 2008 :: 11:30:
и как быстро вытащить все цифры из него?

вытащить куда?
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Какое максимально возможное число в 1с?
Ответ #14 - 25. Июля 2008 :: 11:59
Печать  
nikolka писал(а) 25. Июля 2008 :: 11:30:
и как быстро вытащить все цифры из него?

Ну как... Отнимать и делить... (c) Пособие для молодых жен миллионеров. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать