Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 69
1

Считается неправильно, почему?

22.07.2011, 11:44. Показов 1472. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста!
я перемножаю числа которые находятся в текст боксах,
для этого написал формулу :
Text15.Text = Val(Text5.Text) * Val(Text3.Text) + Val(Text6.Text) * Val(Text3.Text) / 2
В Text5 выбираются значения из списка. Text3 рассчитывается путем перемножения Text1*Text2 (Text1 и Text 2 печатаются вручную)
Проблема в том что даже ессли в Text3 значение дробное, например 2,65 при умножении данных из других ячеек на Val(text3.text) умножение идет только на целую часть. Я подозреваю что так происходит из за знака "," который получается вместо "."

Как решить проблему?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2011, 11:44
Ответы с готовыми решениями:

Почему неправильно считается результат?
Помогите,пожалуйста:создал два вычисляемых поля Ставка и Сумма в таблице "Платежи",однако Access их...

Почему неправильно считается формула?
Вопрос в заголовке.Программа написана вроде правильно, ошибок не вижу. P.S. Так как переменные...

Почему неправильно считается простое математическое выражение?
Всем привет. Вопрос будет очень банальным: я правильно записал выражение? double R = (2 *...

Почему-то неправильно считается кол-во элементов массива
В последнем цикле считывается текст из файла и вместе с этим подсчитывается кол-во символов. Текст...

9
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
22.07.2011, 13:09 2
Леонид1, потомучто функция VAL выдергивает число из строки. пусть s="123привет252" то Val(s)=123. Вам нужно приводить к нужному типу.
Visual Basic
1
Text15.Text = Cdbl(Text5.Text) * Cdbl(Text3.Text) + Cdbl(Text6.Text) * Cdbl(Text3.Text) / 2
В данном случае к типу дабл.
1
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 69
22.07.2011, 13:48  [ТС] 3
во всем коде val поменять на CDbl???
0
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
22.07.2011, 13:53 4
Цитата Сообщение от Леонид1 Посмотреть сообщение
во всем коде val поменять на CDbl???
я бы сделал так. но если вы уверены насчет конкретного типа данных в конкретном поле, то можно для каждого поля организовать приведение к соответствующему типу. к Integer, Single..... и т.д.
0
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 69
22.07.2011, 13:59  [ТС] 5
Формула выглядела полностью так:
Visual Basic
1
Text15.Text = Val(Text5.Text) * Val(Text3.Text) + Val(Text6.Text) * Val(Text3.Text) / 2 + Val(Text7.Text) * Val(Text3.Text) / 2 + Val(Text8.Text) + Val(Text9.Text) + Val(Text10.Text) + Val(Text10.Text) * Val(Text3.Text) + Val(Text11.Text) * Val(Text12.Text) * Val(Text4.Text) + Val(Text13.Text) + Val(Text14.Text)

Когда изменил стала выглядеть так
Visual Basic
1
 Text15.Text = CDbl(Text5.Text) * CDbl(Text3.Text) + CDbl(Text6.Text) * CDbl(Text3.Text) / 2 + CDbl(Text7.Text) * CDbl(Text3.Text) / 2 + CDbl(Text8.Text) + CDbl(Text9.Text) + CDbl(Text10.Text) + CDbl(Text10.Text) * CDbl(Text3.Text) + CDbl(Text11.Text) * CDbl(Text12.Text) * CDbl(Text4.Text) + CDbl(Text13.Text) + CDbl(Text14.Text)
Теперь выдает ошибку: Type mismatch
Что делать???? Помогите!!! Пожалуйста!!!
0
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
22.07.2011, 14:01 6
Цитата Сообщение от Леонид1 Посмотреть сообщение
Что делать???? Помогите!!! Пожалуйста!!!
Смотреть что за разделитель целой и дробной части 3,14 и 3.14 есть разница.
0
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 69
22.07.2011, 14:03  [ТС] 7
если "," то CDBl???
0
748 / 547 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
22.07.2011, 14:06 8
Цитата Сообщение от Леонид1 Посмотреть сообщение
если "," то CDBl???
посмотрите с каким ошибки вылетать не будет. Еслм в поле вводите 3.14 и вылетает ошибка, вводите 3,14
1
1 / 1 / 0
Регистрация: 15.07.2011
Сообщений: 69
22.07.2011, 14:12  [ТС] 9
может посмотрите мой проект можно вам выслать на почту?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
22.07.2011, 14:17 10
может так прокатит
Visual Basic
1
2
Text3.Text = Replace(Text3.Text, ",", ".")
Text15.Text=...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2011, 14:17

Стационарное распределение марковской цепи считается неправильно, почему-то
Моделирую марковский процесс. Конкретно Матрицу переходных вероятностей. Но вот неудача, при...

Почему в однокритериальной оптимизации считается минимум для сопротивления, но не считается для тока?
В самом конце работы идёт однокритериальная оптимизация по мощности P2 для R2 и I. Надо сделать с...

Неправильно считается факториал
Условие. Дан числовой ряд и некоторое число e. Найти суму тех членов ряда, модуль которых больше...

Неправильно считается тангенс
#include "stdafx.h" #include <iostream> #include <clocale> #include <cmath> using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.