Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
42 / 4 / 0
Регистрация: 27.02.2013
Сообщений: 84

Не распознает дробные числа

15.09.2013, 12:31. Показов 6752. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
делаю калькулятор
сделала функцию, кот-ую буду вызывать в последующем:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Function result(a As Double, s As Double, z As String) As Double
 
        Select Case z
            Case "+"
                s = s + a
            Case "-"
                s = s - a
            Case "/"
                s = s / a
            Case "*"
                s = s * a
            Case "mod"
                s = s Mod a
 
        End Select
        result = s
    End Function
для кнопки "+" составила код:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub btnPlus_Click(sender As Object, e As EventArgs) Handles btnPlus.Click
        Dim a As Double, s As Double 
        Dim z As String
        
        a = Val(txtNumber1.Text)
        s = Val(txtResult.Text)
        z = lblZnak.Text
        txtResult.Text = result(a, s, z)
        lblOperator.Text = lblOperator.Text & txtNumber1.Text & btnPlus.Text
        lblZnak.Text = btnPlus.Text
 
        txtNumber1.Clear()
       
    End Sub
для целых чисел вычисляет правильно, а для дробных считает как будто они целые. я уже пробовала менять val на cdbl, но рез-т тот же. не знаю, в чем ошибка.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2013, 12:31
Ответы с готовыми решениями:

Дробные числа
Доброго времени суток! Проблема такова, я не знаю как работать с дробными числами. А теперь все по порядку: Есть форма, на ней...

В какой переменной хранить дробные числа
В какой переменной нужно хранить число например: 24,111111. Переменная Single хранит только с 1 целым числом например: 3,1111111. И можно...

Перевести число из 10-ой в 8-ую СС, включая дробные числа
помогите найти ошибку!!!!! надо перевести число из 10-ой в 8-ую СС. Включая дробные числа. Private Sub Button1_Click(ByVal sender As...

8
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
15.09.2013, 12:40
Val округляет числа, причем как-то криво.
Используй просто
VB.NET
1
TextBox1.Text
При том условии, что там никогда не будет букв и прочих лишних символов
0
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714
15.09.2013, 12:46
Надо дробное число вводить с точкой... Тогда считает!!!! Если версия VB 2008, то VAL нужен, с 2010 не обязателен!!!
0
42 / 4 / 0
Регистрация: 27.02.2013
Сообщений: 84
15.09.2013, 12:48  [ТС]
я и ввожу с точкой. попробовала без val и cdbl - пишет "не может привести 1.5 к типу double". (у меня переменная a типа double)
0
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
15.09.2013, 12:52
Всегда писал дробные числа с запятой, и Студия мою точку зрения поддерживает
0
42 / 4 / 0
Регистрация: 27.02.2013
Сообщений: 84
15.09.2013, 13:22  [ТС]
а как сделать так, чтобы он распознавал числа с запятой как дробные? пот. что ошибка происходит, когда программа выводит дробный результат в txtResult через запятую, а обратно не может прочитать это число как дробное (берет за целое)

Добавлено через 23 минуты
нашла. )
VB.NET
1
2
a = Val(txtNumber1.Text.Replace(",", "."))
        s = Val(txtResult.Text.Replace(",", "."))
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
15.09.2013, 13:51
Мэри А, в Вашем примере я запутался с лейблами, создал новый простой проект:
VB.NET
1
2
3
4
5
        Dim Val1, Val2, Res As Double
        Val1 = TextBox1.Text
        Val2 = TextBox2.Text
        Res = Val1 + Val2
        MsgBox(Res / 2 & " - среднее арифметическое?")
В нем считаются дробными как слагаемые, так и результат

Добавлено через 33 секунды

Не по теме:

Опоздал

1
4 / 4 / 2
Регистрация: 12.11.2012
Сообщений: 56
19.09.2013, 21:23
А может быть просто тип переменных попробовать поменять на Single?
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.09.2013, 22:08
Цитата Сообщение от timsc1 Посмотреть сообщение
Надо дробное число вводить с точкой
Цитата Сообщение от AeroWhite Посмотреть сообщение
Всегда писал дробные числа с запятой
Цитата Сообщение от Мэри А Посмотреть сообщение
я и ввожу с точкой. попробовала без val и cdbl - пишет "не может привести 1.5 к типу double"
Это зависит от настроек системы. Узнать, что является десятичным разделителем в системе можно строкой:
VB.NET
1
Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
Таким образом, если ввести дробное число через точку, а десятичный разделитель — запятая, то Val дробную часть отбросит, хотя вернёт double.
Я бы использовал Try…Catch, Double.TryParse и Double.Parse, чтобы проверять введённые числа
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.09.2013, 22:08
Помогаю со студенческими работами здесь

Программа переводов систем счислений (2 8 16 32 целые и дробные числа)
Программа переводов счислений. Перевод, арифметические операции дробных и целых чисел. Также перевод из арабских в римские числа. Нужна...

Не распознает дробные числа
Всем привет! Помогите новичку Подключил БД к Delphi (во вложении сама программа) Не распознает дробные числа, что делать?

Цикл: В ячейки Excel записываются целые числа. Как исправить, чтобы числа были дробные?
Программа считает в цикле Y при заданных х и находит максимум и минимум функции. В ячейки Excel записывает не правильно целые числа Y....

Дробные числа, С++
Уважаемые знатоки, требуется ваша помощь. Передо мной стоит задача посчитать приблизительную сумму ряда, путем вычисления частичных сумм....

Дробные числа
пишу в Builder C++ нужно дробное число отображать в едите получается примерно так: double x; x=0.55; String y; y=...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru