Вверх ↑
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
#1: 2015-06-05 10:09:13 ЛС | профиль | цитата
Добрый день!
Наблюдаю странное поведение MT_String если строка в виде числа более 9 знаков
Вот пример
code_35792.txt
Почему это происходит?
Как исправить?
карма: 1

0
файлы: 1code_35792.txt [1.2KB] [553]
vip
#1.1контекстная реклама от партнеров
Ответов: 8885
Рейтинг: 823
#2: 2015-06-05 10:47:12 ЛС | профиль | цитата
-= DriveR =-, знаковая целая в формате "integer" (4 бита) может иметь значения +-2 147 483 648, а 6 666 666 666 явно выходит за рамки допустимого (да к тому же похоже на число дьявола )
карма: 19

0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2015-06-05 10:49:37 правка | ЛС | профиль | цитата


Редактировалось 10 раз(а), последний 2021-06-24 07:56:45
карма: 0

0
Ответов: 817
Рейтинг: 52
#4: 2015-06-05 10:54:21 ЛС | профиль | цитата
Ну ладно, что бы никого не смущать дьвольщиной, можно например написать 777777777777
А все остальное что вы написали я ничего не понял, как будто наругались на меня
Можно как то поправить проблему?
------------ Дoбавленo в 10.52:
46.165.8.34,
понял, сейчас посмотрю

------------ Дoбавленo в 10.54:
46.165.8.34,
Ха...
Мысль вашу понял, однако эти скобочки даже выглядят как костыли
Может есть более правильное решение?
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#5: 2015-06-05 10:55:23 ЛС | профиль | цитата
-= DriveR =- писал(а):
Как исправить?

Загнать его туда как real

Add(MainForm,9288139,133,119)
{
}
Add(TreeViewTrain,10546669,273,203)
{
Width=145
Height=162
Name="ILTree"
ModeSp=3
SizeSp=3
MinOwn=150
MinRest=200
Tooltips=0
IconsManager="icons"
DragDrop=0
CaptionIndex=3
ParentIDIndex=1
IconIndex=2
Point(Width)
Point(doWidth)
Point(NextID)
Point(doExpand)
Point(doCollapse)
}
Add(MT_String,1923382,406,287)
{
link(onResult,11328389:doAddNode,[])
}
Add(TVT_AddNode,11328389,455,287)
{
TreeView="ILTree"
}
Add(Button,198556,252,294)
{
Left=160
Top=85
Caption="ADD"
link(onClick,14941269:doString,[])
}
Add(Edit,6335248,385,203)
{
Left=160
Top=35
Width=145
Text="666666666666"
}
Add(IconsManager,16587032,196,119)
{
Name="icons2"
Icons=['Icon'=[ZIP3E04000078DA636060044201010620A9C0A0C1C2C020C6C0C0A001C44021A008449C3EE07F00F96AFEF703F17F088D532F0E352033C1E2FF719B01D70BC30104E4FB8993236406B17A719A41825EBC66F493108FFD54B69B5CBFF75316F6C4C6DF7F0732D28F039A7C0109E9B70087BC0311E1EB40CD1C0B008B4FBA79]]
}
Add(FormatStr,14941269,329,294)
{
DataCount=3
Mask="%1;-1;%2;%3.0"
link(onFString,1923382:doMT,[])
link(Str1,10546669:NextID,[(335,264)(293,264)])
link(Str2,1916125:Value,[])
link(Str3,6335248:Text,[(349,264)(391,264)])
}
Add(Memory,1916125,336,203)
{
Default=Integer(0)
}

карма: 22

1
Голосовали:-= DriveR =-
Ответов: 817
Рейтинг: 52
#6: 2015-06-05 12:09:36 ЛС | профиль | цитата
nesco,
Работает!
Только очень интересное решение, никогда не видел такого.
Можно где то почитать про ".0", может есть еще что то интересное типа ".1 или .100500" ?
------------ Дoбавленo в 12.09:
Леонид,
Немного начал понимать о чем вы говорили.
Это ограничение в компоненте, может сделать 8 бит?

карма: 1

0
Ответов: 1841
Рейтинг: 369
#7: 2015-06-05 12:23:28 ЛС | профиль | цитата
-= DriveR =-,
2.1.2. Числа

Одно и то же число можно записать самыми разными способами, например:

15 { целое }
15.0 { вещественное с фиксированной точкой }
1.5E01 { вещественное с плавающей точкой }
$F { шестнадцатиричное }

В языке Delphi имеется возможность применять все способы записи, но чаще всего используют целые и вещественные числа.

Целые числа состоят только из цифр и знака + или –. Если знак опущен и число не равно 0, то оно рассматривается как положительное, например:

0 { 0 интерпретируется как целое число }
17 { положительное целое число }
-39 { отрицательное целое число }

Вещественные числа содержат целую и дробную части, разделенные точкой:

0.0 { 0 интерпретируется как вещественное число }
133.5 { положительное вещественное число }
-0.7 { отрицательное вещественное число }


Такая запись практикуется во многих ЯПах и служит в некоторых случаях как указание компилятору на тип числа (вещественное/целое), без использования дополнительных операторов явного приведения типа.
------------ Дoбавленo в 12.23:
Леонид писал(а):
+-2 147 483 648


От -2147483648 до +2147483647 же
карма: 1
0
Ответов: 817
Рейтинг: 52
#8: 2015-06-05 12:26:28 ЛС | профиль | цитата
CriDos писал(а):
От −2147483648 до 2147483647 же

Понял

Полезная информация, спасибо большое.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#9: 2015-06-05 13:19:59 ЛС | профиль | цитата
-= DriveR =-,
code_35794.txt

------------ Дoбавленo в 13.19:
CriDos писал(а):
От -2147483648 до +2147483647 же
Леонид четко писал(а):
"integer" (4 бита) может иметь значения +-2 147 483 648
А вот почему "4 бита" - непонятно.
Тип Integer - это основной целочисленный тип в Delphi, и в настоящее время имеет ту же самую ёмкость как LongInt тип -
1 бит на знак, и 31 бит на значение.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_35794.txt [939B] [530]
Ответов: 4612
Рейтинг: 746
#10: 2015-06-05 13:25:54 ЛС | профиль | цитата
Нет, четко написал CriDos
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#11: 2015-06-05 13:27:42 ЛС | профиль | цитата
А мне понятно и "+-"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4612
Рейтинг: 746
#12: 2015-06-05 13:29:49 ЛС | профиль | цитата
Значения +2 147 483 648 быть не может.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#13: 2015-06-05 13:39:09 ЛС | профиль | цитата
Точно. А я на значения не обратил внимания.
Посыпаю голову пеплом.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8885
Рейтинг: 823
#14: 2015-06-05 15:01:49 ЛС | профиль | цитата
CriDos писал(а):
От -2147483648 до +2147483647 же
Зато короче!
Tad писал(а):
А вот почему "4 бита" - непонятно
Потому что байта, сейчас исправлю и будет "А вот почему "4 бита" - непонятно" совсем непонятно
карма: 19

0
Ответов: 4
Рейтинг: 0
#15: 2019-07-02 19:58:58 ЛС | профиль | цитата
Почему так необходимо подыскивать способ записи числа если нет нужды производить арифметического действия?
В известном примере (help\картеж:принцип\использования) замечено что при замене словесного названия модели авто (самара как 008) нули пропадают. Под каким-то хитрым "соусом" подскажите способ иметь альтернативу записи в картеж.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)