powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с функцией val()
5 сообщений из 5, страница 1 из 1
Помогите с функцией val()
    #37671040
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в методе init page3:
Код: sql
1.
thisform.pageframe1.page3.text4.Value="0.2"



на событии dbclick гридa (page3):
Код: sql
1.
thisform.pageframe1.page3.text6.Value=VAL(thisform.pageframe1.page3.text4.Value)/100



В результате в text6 вместо 0.2 выводится: 0.00000. Почему?
...
Рейтинг: 0 / 0
Помогите с функцией val()
    #37671103
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ganjubas
> В результате в text6 вместо 0.2 выводится: 0.00000. Почему?

Потому, что точка, а нужна запятая

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с функцией val()
    #37671225
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Символ-разделитель целой и дробной части зависит от настройки

Код: sql
1.
SET POINT TO


По умолчанию, это действительно точка. Однако, вероятно, Вы где-то сделали настройку

Код: sql
1.
SET POINT TO ","


или более глобальную настройку

Код: sql
1.
SET SYSFORMATS ON


Последняя настройка заставляет FoxPro использовать текущие языковые настройки операционной системы. Для русского языка разделителем целой и дробной части по умолчанию в этом случае используется запятая.

Посмотреть текущее значение настройки можно командой

Код: sql
1.
?SET("POINT")




PS: Если Вы не понимаете смысл какой-либо настройки - не меняйте ее значение.
...
Рейтинг: 0 / 0
Помогите с функцией val()
    #37671719
Ganjubas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, проблема была в настройках. Причем на одном компьютере все это работало, а на другом нет. В компе, где не работало, в настройках regional поменял значение decimal separators с запятой на точку и все заработало. Спасибо за подсказку
...
Рейтинг: 0 / 0
Помогите с функцией val()
    #37671728
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GanjubasДействительно, проблема была в настройках. Причем на одном компьютере все это работало, а на другом нет. В компе, где не работало, в настройках regional поменял значение decimal separators с запятой на точку и все заработало. Спасибо за подсказку
Нездорово ты проблему порешал. Не должна программа от настроек винды зависеть.
По-хорошему если число вводишь, то и текстбокс изначально должен быть числовой, а не символьный.
Если уж очень надо символьный, так дробные числа преобразовывай:
Код: sql
1.
=VAL(chrtran(thisform.pageframe1.page3.text4.Value, ',.', SET("POINT")+SET("POINT"))/100



Есть еще подводные камни у VAL(). Так попробуй:
Код: sql
1.
thisform.pageframe1.page3.text4.Value="12e3456"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с функцией val()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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