Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2013, 01:03   #1
Jawner
Пользователь
 
Регистрация: 11.04.2012
Сообщений: 15
По умолчанию ошибка Temporary used for parameter 'A' in call to 'Rounde(float &)'

Задание: ВВести 5 действительных чисел и построить string-ряд, округлить их до сотых и за каждым числом вставить "грн."

Uni1.cpp

Код:
#include "Unit1.h"
#include "Unit2.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Atp A;
AnsiString S;
for(int i; i<5;i++)
A[i]=StrToFloat(StringGrid1->Cells[0][5]);
Round(A); //Ошибка тут, не пойму в чем дело.
grn(A,S);
Edit1->Text=S;
}
Unit2.cpp

Код:
void Round(Atp &A)
{
 for(int i=0;i<5;i++)
 A[i]=FormatFloat("0.00",A[i]);
}

void grn(Atp A,AnsiString &S)
{
for(int i=0;i<5;i++)
 S=S+FloatToStr(A[i])+"ãðí.";
}
Unit2.h

Код:
typedef float Atp[5];
void Round(float &A);
void grn(float A,AnsiString &S);
Jawner вне форума Ответить с цитированием
Старый 23.04.2013, 09:17   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Сравните void Round(float &A) в одном файле с void Round(Atp &A) в другом. Ничего не замечаете?
waleri вне форума Ответить с цитированием
Старый 23.04.2013, 23:21   #3
Jawner
Пользователь
 
Регистрация: 11.04.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Сравните void Round(float &A) в одном файле с void Round(Atp &A) в другом. Ничего не замечаете?
Ой, действительно. Когда создавал структуры про это и забыл.
Только вот теперь в процедуре
Код:
void Round(Atp &A)
{
 for(int i=0;i<5;i++)
 A[i]=FormatFloat("0.00",A[i]);// здесь выбивает ошибку Cannot convert 'AnsiString' to 'float'
Хотя когда я забиваю массив, я сразу же из Ансистринг в флоат перевожу.
Jawner вне форума Ответить с цитированием
Старый 24.04.2013, 12:33   #4
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

FormatFloat преобразует число в строку с заданным форматом.
Код:
for(int i=0;i<5;i++)
 A[i] = RoundTo( A[i], -2 ); // округление до второго знака после запятой
FataLL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка с3867 function call missing argument list enjo Общие вопросы C/C++ 11 13.11.2012 17:49
Что за ошибка, Call to undefined method CI_Model::Model() MsWindows PHP 1 18.06.2011 18:13
Ошибка типа cannot convert `float*' to `float' for argument `1' ... Trackman Помощь студентам 3 23.05.2011 17:09
ошибка Call to a member function fetch_assoc() on a non-object Bendebej PHP 2 02.04.2010 14:04
Ошибка Constant object cannot be passed as var parameter nusik Общие вопросы Delphi 7 15.05.2009 21:00