Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Операция суммирования чисел в текстовых полях  (Прочитано 7993 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
yelis
Участник

ua
Offline Offline
Живи и дай жить ...


« : 25-02-2009 17:13 » 

Доброго времени всем!
Прошу помощи в простом, казалось бы, вопросе.
На форме есть три тестовых поля: Text1, Text2, Text3 и кнопка. Код кнопки:
If Val(Text1.Text) <> Val(Text2.Text) * Val(Text3.Text) Then MsgBox "NO" Else MsgBox "OK"

1. Если вводить выражение: 7,7=7*1,1 (разделяя целую и дробную часть чисел запятыми), то выдает сообщение "ОК". Если ввести то же выражение, но с разделителем - точкой, то выдает "NO".
2. Если далее в те же текстовые поля ввести выражение: 8,4=7*1,2 (разделитель - запятая), то выдает "NO". А если использовать точку, то выдает "ОК".
В чем дело? Подскажите, пожалуйста. Я себе уже голову сломал.
Спасибо!!!
Записан
yelis
Участник

ua
Offline Offline
Живи и дай жить ...


« Ответ #1 : 25-02-2009 18:37 » new

Поборол заразу!
Вдруг кому-то понадобится. Сравнивать надо не в числовом, а в строковом формате. Вот код для кнопки:
Код:
If Text1.Text <> Trim(Str(Val(Text2.Text) * Val(Text3.Text))) Then MsgBox "NO" Else MsgBox "OK"
P.S. В качестве разделителя - только точка.
« Последнее редактирование: 25-02-2009 19:00 от yelis » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 25-02-2009 19:00 » 

yelis, а какая цель сравнения, я не совсем понял. Если числа - то в числовом формате надо сравнивать.
Записан

HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 26-02-2009 05:51 » 

Цитата
В чем дело? Подскажите, пожалуйста. Я себе уже голову сломал.

Дело в разделителях, которые используюися в Excel

кстати, помоему, Ваше решение тоже не идеально и возможны ошибки

Цитата
yelis, а какая цель сравнения, я не совсем понял. Если числа - то в числовом формате надо сравнивать.
вероятно для проверки правильности ввода в текстбоксы

Записан

I Have Nine Lives You Have One Only
THINK!
yelis
Участник

ua
Offline Offline
Живи и дай жить ...


« Ответ #4 : 26-02-2009 18:25 » 

Сравнение нужно для проверки корректности ввода числовых данных, которые используются в дальнейшем при работе программы.
Записан
viter.alex
Гость
« Ответ #5 : 27-02-2009 15:31 » 

По-моему проще фильтровать ввод на предмет цифр. Метод не универсальный и не идеальный. Если нужно контролировать, чтобы произведение соответствовало, то нужно числа и сравнивать. Запретить ввод точки или запятой.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines