Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Какое максимально возможное число в 1с? (число прочтений - 8127 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #15 - 25. Июля 2008 :: 12:05
Печать  
Причем в каждом 32х-разрядном слове буфера может храниться не максимальной двоичное число 2^32=4294967296, а число из девяти десятичных цифр (нонетов), т.е. 999999999 (т.е. используется только 30 разрядов)
Это я только про целые числа.
А про хранение дробных могут расказать например DmitrO или orefkov
  

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



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #16 - 25. Июля 2008 :: 12:36
Печать  
а когда я вывожу чило, я получается тоже попадаю на ограничение связанное с конвертацией?
  
Наверх
 
IP записан
 
nikolka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 15. Января 2007
Re: Какое максимально возможное число в 1с?
Ответ #17 - 25. Июля 2008 :: 12:39
Печать  
kms писал(а) 25. Июля 2008 :: 11:59:
nikolka писал(а) 25. Июля 2008 :: 11:30:
и как быстро вытащить все цифры из него?

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

Что то типа:
Функция ЧислоВСтроку(X)
     Z="";
     Пока X>9999999999 Цикл      
           Y=Цел(X/10000000000);      
           Z1=X-10000000000*Y;Z1=Строка(Z1);
           Z1=Лев("0000000000000",10-СтрДлина(Z1))+Z1;Z=Z1+Z;            
           X=Y;            
     КонецЦикла;
     Возврат Строка(X)+Z;      
КонецФункции
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #18 - 25. Июля 2008 :: 12:49
Печать  
Pelmen писал(а) 25. Июля 2008 :: 12:36:
а когда я вывожу чило, я получается тоже попадаю на ограничение связанное с конвертацией?

думаю что да
  

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


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

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

Ну, типа того.
Здесь можно устроить конкурс, как это сделать быстрее.

Но в принципе, скорость не сильно важна, т.к. конвертация нужна только для представления результата.
А так - штатно любой объект 1С подходит для подсчета астрономических величин.
  

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



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #20 - 25. Июля 2008 :: 13:02
Печать  
спасибо
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #21 - 25. Июля 2008 :: 13:10
Печать  
еще вариант
Код
Выбрать все
Функция ЧислоВСтроку2(Знач X)
	Z="";
	Пока X>999999999999999999999999999999999999 Цикл
		00000),36)+Z;
		X=Цел(X/1000000000000000000000000000000000000);
	КонецЦикла;
	Возврат Строка(X)+Z;
КонецФункции
 

  

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #22 - 25. Июля 2008 :: 13:24
Печать  
Порядок
чисел
ЧислоВСтроку
(t, ms)
ЧислоВСтроку2
(t, ms)
820 004 003
1641 012 006
2462 024 012
3283 041 019
4104 062 029
4925 089 037
5746 120 050
6567 155 062
7388 196 078
8209 239 092

Процедура Сформировать()
     343146233356576856531134314623356735673565768565311343146233;
     X=1;
     Сообщить("[tr][td]Порядок чисел [/td][td]ЧислоВСтроку (t, ms) [/td][td]ЧислоВСтроку2 (t, ms) [/td][/tr]");
     Для Тек=1 По 10 Цикл
           X=X*X1*X1*X1*X1*X1*X1;
           
           Сч=_GetPerformanceCounter();
           Стр1=ЧислоВСтроку(X);
           Стр2=Строка(_GetPerformanceCounter()-Сч);

           Сч=_GetPerformanceCounter();
           Стр3=ЧислоВСтроку2(X);
           Стр4=Строка(_GetPerformanceCounter()-Сч);
           
           Сообщить("[tr][td]"+(СтрДлина(Стр1)-1)+" [/td][td]"+Прав(Стр2,3)+" [/td][td]"+Прав(Стр4,3)+" [/td][/tr]");
     КонецЦикла;
КонецПроцедуры
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Какое максимально возможное число в 1с?
Ответ #23 - 26. Июля 2008 :: 02:52
Печать  
Интересная ветка получилась Улыбка. Где бы это ещё применить...
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать