Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв? / 7 сообщений из 7, страница 1 из 1
29.05.2006, 16:37
    #33758702
Yura Zavaliy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
поле должно быть символьное... с длинным числом....
я пишу
sele test
idd=val(test.id)

scatter memvar
append blank
gather memvar fields except id
replace test.id with str(idd+1)
thisform.refresh
thisform.txtid.setfocus


и получаю 1,000E+11 ....
как победить можно? спасибо!
...
Рейтинг: 0 / 0
29.05.2006, 16:41
    #33758719
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
replace test.id with left(test.id,len(test.id)-1)+transform(val(right(test.id,1))+1)
...
Рейтинг: 0 / 0
29.05.2006, 16:45
    #33758733
Yura Zavaliy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
AleksMedreplace test.id with left(test.id,len(test.id)-1)+transform(val(right(test.id,1))+1)

ясно..а как де сделать переход на десятку типа с 0009 на 0010?... или
с ...0099999 все позиции анализировать?... может есть путь проще?...
...
Рейтинг: 0 / 0
29.05.2006, 16:49
    #33758741
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
Замени в своём коде STR() на TRANSFORM() и всё будет нормаольно.
...
Рейтинг: 0 / 0
29.05.2006, 17:00
    #33758778
Yura Zavaliy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
AleksMedЗамени в своём коде STR() на TRANSFORM() и всё будет нормаольно.

ШАМАН! :) ОГРОМНОЕ СПАСИБО, преклоняю шляпу!
...
Рейтинг: 0 / 0
29.05.2006, 17:02
    #33758788
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
STR() тож годится, но тогда нужно указывать второй параметр и третий = 0.
...
Рейтинг: 0 / 0
29.05.2006, 17:03
    #33758793
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв?
Если все-таки сделать над собой усилие и прочитать HELP , то окажется, что у функции STR() есть еще 2 параметра, которые определяют сколько знаков будет иметь символьная строка. Если эти два параметра не указаны, то, по умолчанию, предполагается, что результирующая строка будет иметь 10 знаков.

Проверь:

Код: plaintext
1.
2.
3.
aa =  100000000034 
?STR(m.aa)
?STR(m.aa, 20 )

Только следует иметь в виду, что FoxPro поддерживает точность расчета до 16 значащих цифр (точнее, до 15.7). Это значит, что если число содержит более 16 знаков, то достоверными из них будут только первые 16. Остальные будут заполнены случайным образом или нулями.

Код: plaintext
1.
2.
3.
aa =  1000000000340005678 
?STR(m.aa)
?STR(m.aa, 20 )
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как перевести симв. 100000000034 в число, добавить 1 и перевести назад в симв? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]