Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для abbat81
33 / 33 / 3
Регистрация: 20.07.2011
Сообщений: 407

Арифметика с НЕ-целыми числами.

21.07.2011, 14:10. Показов 1947. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Наткнулся на проблему.

Арифметика работает только с цельными числами.
Но нужно работать с числами нецелыми.

Перепробовал конвертировать в String, Double, Integer.... В подстказке указывает на проблему конвертации в Double, но все никак не выходит.

1) Например: 2,35+3,25
2) Ограничить дробную часть до 2 символов.

Как исправить, чтобы содержимое поля TextBox5.Text (sum) со значением 3,25 было обработано.



VB.NET
1
2
3
4
5
Dim i As String = Convert.ToSingle(TextBox1.Text)
Dim sum = Convert.ToString(TextBox5.Text)
Dim points As String = 36 / i * (sum * 100)
 
Label1.Text = points
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2011, 14:10
Ответы с готовыми решениями:

Создать стек со случайными целыми числами. Удалить из него записи с четными числами.
Создать стек со случайными целыми числами. Удалить из него записи с четными числами.

с целыми числами.
97) Дано натуральное число n. Переставить местами первую и последнюю цифру этого числа. 98) Даны 2 натуральных числа m и...

Арифметика с 4 байтными числами
положим у меня есть код MOV AX,1000h MOV BX,FFF7 IMUL BX в итоге получаю в DX=FFFF, AX=7000 Мне нужно число FFFF7000 (-36864b)...

9
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
21.07.2011, 14:20
abbat81, Объявляешь переменную как строковую и ей присваиваешь вещественное значение. я про строку Dim i As String = Convert.ToSingle(TextBox1.Text)
а переменная sum у тебя становится строковая, хотя сначала она variant.
VB.NET
1
2
3
4
Dim i As Single = Convert.ToSingle(TextBox1.Text)
Dim sum = Convert.ToSingle(TextBox5.Text)
Dim points As String = 36 / i * (sum * 100)
Label1.Text = points
надо наверно еще с разделителем целой и дробной части поработать. То есть определить какой символ используется в качестве него.
0
 Аватар для abbat81
33 / 33 / 3
Регистрация: 20.07.2011
Сообщений: 407
21.07.2011, 14:31  [ТС]
В строке:
VB.NET
1
dim sum = Convert.ToSingle(TextBox5.Text)
Выдало ошибку:
Input string was not in a correct format.

Тоесть:
VB.NET
1
2
3
4
Dim i As Single = Convert.ToSingle(TextBox1.Text)
Dim sum = Convert.ToSingle(TextBox5.Text)
Dim points As String = 36 / i * (sum * 100)
Label1.Text = points
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
21.07.2011, 14:36
abbat81, объяви как сингл ее
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
21.07.2011, 14:45
abbat81, поскольку не все строки могут адекватно переведены в числа, лучше использовать TryParse
VB.NET
1
2
3
4
If Single.TryParse(TextBox1.Text, i) Then
'тут все остальные действия, если преобразование прошло успешно 
.....
End If
0
 Аватар для abbat81
33 / 33 / 3
Регистрация: 20.07.2011
Сообщений: 407
21.07.2011, 14:45  [ТС]
Обьявил, но к сожалению не прошло - "не тот формат":
Input string was not in a correct format.

Сечас код выглябит так:

VB.NET
1
2
3
4
 Dim i As String = Convert.ToSingle(TextBox1.Text)
        Dim sum As Single = Convert.ToSingle(TextBox5.Text)
        Dim points As Single = 36 / i * (sum * 100)
        Label8.Text = points
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
21.07.2011, 14:51
abbat81, Первая строка у тебя опять неверно записана. а по поводу ошибки конвертирования посмостри что ты вводишь в текстбокс 3,25 или 3.25
1
 Аватар для abbat81
33 / 33 / 3
Регистрация: 20.07.2011
Сообщений: 407
21.07.2011, 15:12  [ТС]
Цитата Сообщение от gitarillo Посмотреть сообщение
abbat81, Первая строка у тебя опять неверно записана. а по поводу ошибки конвертирования посмостри что ты вводишь в текстбокс 3,25 или 3.25
gitarillo Спасибо!
Уххх ... оказывается работает, но только на рус. раскладке, то есть с запятой.

Теперь как разрешить точку, что при англ. раскладке, которая на номерной клавиатуре.
И как ограничить ввод в Text.box5.text до формата : "999,99" ?

Добавлено через 6 минут
Цитата Сообщение от Eugene22 Посмотреть сообщение
abbat81, поскольку не все строки могут адекватно переведены в числа, лучше использовать TryParse
VB.NET
1
2
3
4
If Single.TryParse(TextBox1.Text, i) Then
'тут все остальные действия, если преобразование прошло успешно 
.....
End If
Переменная i -цельная, тоесть не в ней загвоздка, а в переменой sum, на которую натыкаемя с ошибкой, а если ее не обьявлять до уловия If Single.TryParse то соответственно - такая переменная не обявлена, напр "Еще Не обьявлена SUM":

VB.NET
1
2
3
4
5
6
If Single.TryParse(TextBox5.Text, sum) Then
Dim i As Single = Convert.ToSingle(TextBox1.Text)
Dim sum = Convert.ToSingle(TextBox5.Text)
Dim points As String = 36 / i * (sum * 100)
Label1.Text = points
end if
И не решается проблема с форматом, если натыкаемся до парсера на ту переменную sum, ведь в нее вбили дробное число.
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
21.07.2011, 15:15
Цитата Сообщение от abbat81 Посмотреть сообщение
Теперь как разрешить точку, что при англ. раскладке, которая на номерной клавиатуре.
Нужно сначала определить что система использует в качестве целочисленного разделителя. Этот вопрос решался мною тут
По второму вопросу -

Не по теме:

лучше в отдельной ветке задай вопрос. Кашу на форуме не будем разводить.

1
197 / 189 / 15
Регистрация: 09.02.2011
Сообщений: 457
21.07.2011, 15:43
Eugene22 прав абсолютно... только можно еще сделать вот так:
VB.NET
1
2
3
4
        Dim v1 As Single = 0
        Dim v2 As Single = 1.00001
        If Not Single.TryParse(TextBox2.Text.Replace(".", ","), v1) Then Single.TryParse(TextBox2.Text.Replace(",", "."), v1)
        TextBox2.Text = v2 + v1
Чтобы не думать о том какой стандарт на данном компьютере
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.07.2011, 15:43
Помогаю со студенческими работами здесь

Работа с целыми числами
Народ подскажите такой вопрос . Есть натуральное число порядка N . Нужно поменять в этом числе левую и правую половины числа (СТРОКАМИ...

Проверка целыми числами
Добрый день. Может кто-то подскажет решение? Начинается цикл с ввода значений 5 (кол-во ноутов), затем 3, 7,10,30,75 (проверочные цифры) ...

Работа с целыми числами
var y,z:integer; k:integer; begin write('k(введите число от 8 до 22)='); readln(k); if k in then begin k:=y; ...

Массив с целыми числами
дан массив состоящий из 100 целых чисел. Вывести все числа которые встречаются в данном массиве: 1)несколько раз 2) только по одному разу...

Заполнить файл f 3*n целыми числами.
заполнить файл f 3*n целыми числами,полученными с помощью генератора случайных чисел.Записать в другой файл числа,являющиеся произведениями...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru