Форум программистов, компьютерный форум CyberForum.ru

Точные вычисления - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 11:45     Точные вычисления #1
Всем привет !
Я новичок в С++. Столкнулся с такой проблемой - мои проги, не умеют точно считать. Они считают только целые числа.
Самый просто пример
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int A,B,C;
A= StrToInt(Edit1->Text);
B=2,54;
C=A*B;
Edit2->Text=(C);
}
Ввожу 3, например, прога выводит 6, а должна 7.62

P.S. програмирую в BCB6
P.P.S сам я не россиянин, по етому руский знаю плохо =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2010, 11:45     Точные вычисления
Посмотрите здесь:

C++ Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k.
C++ Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа n (например, при вводе 50 программа выводит 1 4 9 16 25 36 49).
C++ точные квадраты
C++ Написать процедуру для вычисления коэффициентов и функцию для вычисления значения многочлена
Определить, есть ли среди элементов матрицы точные квадраты C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
21.08.2010, 11:47     Точные вычисления #2
Цитата Сообщение от seruy-t Посмотреть сообщение
Всем привет !
Я новичок в С++. Столкнулся с такой проблемой - мои проги, не умеют точно считать. Они считают только целые числа.
Самый просто пример
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int A,B,C;
A= StrToInt(Edit1->Text);
B=2,54;
C=A*B;
Edit2->Text=(C);
}
Ввожу 3, например, прога выводит 6, а должна 7.62
У тебя переменная C, в которой ты сохраняешь результат, - целочисленная. С какой радости там будет дробное значение? Да и произведение двух переменных типа int в результате даст int.
Alex_Sabaka
 Аватар для Alex_Sabaka
621 / 38 / 9
Регистрация: 28.07.2010
Сообщений: 895
Завершенные тесты: 3
21.08.2010, 11:47     Точные вычисления #3
Вместо целого типа(int) используйте тип с плавающей точкой(float или double)
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
21.08.2010, 11:48     Точные вычисления #4
C++
1
int A,B,C;
это целочисленный тип
попробуй вместо int float
radiohobbyt
 Аватар для radiohobbyt
192 / 190 / 4
Регистрация: 27.01.2009
Сообщений: 548
21.08.2010, 11:52     Точные вычисления #5
C
1
#define int float
второй строчкой в проекте(после подключения всех заголовочных файлов)
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:17  [ТС]     Точные вычисления #6
спасибо всем !

Добавлено через 17 минут
Ребята, та же проблема, но в место int использую float
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.08.2010, 12:19     Точные вычисления #7
seruy-t, обновленный код покажи.
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:22  [ТС]     Точные вычисления #8
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float A,B,C;
A= StrToFloat(Edit1->Text);
B=2,54;
C=A*B;
Edit2->Text=(C);
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.08.2010, 12:23     Точные вычисления #9
Цитата Сообщение от seruy-t Посмотреть сообщение
C++
1
B=2,54
Символом разделителем целой и дробной части является точка.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.08.2010, 12:24     Точные вычисления #10
Цитата Сообщение от seruy-t Посмотреть сообщение
->Text=(C)
а так вообще можно?
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
21.08.2010, 12:25     Точные вычисления #11
2.54 надо ... еще бы StrToFloat на всякий
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:25  [ТС]     Точные вычисления #12
Огромное спасибо, все заработало
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
21.08.2010, 12:25     Точные вычисления #13
Цитата Сообщение от alex_x_x Посмотреть сообщение
а так вообще можно?
можно, типы тут на автомате приводятся
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.08.2010, 12:26     Точные вычисления #14
Цитата Сообщение от alex_x_x Посмотреть сообщение
а так вообще можно?
Фиг знает, но на всякий случай seruy-t замените
C++
1
Edit2->Text=(C);
на
C++
1
Edit2->Text=FloatToStr(C);
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:31  [ТС]     Точные вычисления #15
ок, щас изменю. А можно поинтерисоватся зачем ?
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
21.08.2010, 12:33     Точные вычисления #16
С - число(тип float), Edit2->Text - текст (тип AnsiString судя по всему), если бы компилятор не заботился о приведение типов - вылетала бы ошибка
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:35  [ТС]     Точные вычисления #17
а c Label'ами тоже так ?
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
21.08.2010, 12:36     Точные вычисления #18
Цитата Сообщение от seruy-t Посмотреть сообщение
а c Label'ами тоже так ?
да (смотри какой тип переменных)
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
21.08.2010, 12:41  [ТС]     Точные вычисления #19
Спасибо за ответы !
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 13:25     Точные вычисления
Еще ссылки по теме:

Выяснить, есть ли среди данных 10 чисел точные квадраты C++
Найти среди данного набора чисел точные квадраты C++
По описанию пути к кладу определить точные координаты клада C++

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

Или воспользуйтесь поиском по форуму:
radiohobbyt
 Аватар для radiohobbyt
192 / 190 / 4
Регистрация: 27.01.2009
Сообщений: 548
21.08.2010, 13:25     Точные вычисления #20
Цитата Сообщение от alex_x_x Посмотреть сообщение
а так вообще можно?
можно. билдер такое часто съедает. почти всегда. сам все преобразует.
Yandex
Объявления
21.08.2010, 13:25     Точные вычисления
Ответ Создать тему
Опции темы

Текущее время: 08:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru