954,505 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Basic doubt

I'm doing a dialog application in C++ to calculate something, but I want the result to be with 2 decimal number, how to do this?

here is the function:

void CCalculatorDlg::Oncalc() 
{
	// TODO: Add your control notification handler code here
	
	UpdateData(TRUE);
	
	if ((m_amostras >= 1) && (m_elementos >= 1) && (m_click == true))
	{
		if (m_interno)
			m_total = (19.8522+(3.99038*(m_elementos-1))+((1.74579+((m_elementos-1)*0.1496))*(m_amostras-1))) + (2.5*m_preparacao);
		else if (m_externo)
		{
			if (m_amostras < 11)
				m_total = (19.9519+(19.9519*(m_elementos-1))+((19.9519+((m_elementos-1)*2.494))*(m_amostras-1)))+(5*m_preparacao);
			
			if (m_amostras > 10)
				m_total = (19.9519+(19.9519*(m_elementos-1))+(((19.9519+((m_elementos-1)*2.494))*(9))+((9.98+((m_elementos-1)*2.494))*(m_amostras-10))))+(5*m_preparacao);
		}
	}
	else
	{
		if ((m_amostras < 1) || (m_elementos < 1))	
			MessageBox("Tem que especificar pelo menos uma amostra e um elemento!");
	
		if (!m_click)
			MessageBox("Tem que especificar o tipo de cliente!");
	}
	
	UpdateData(FALSE);
	
}


I want the variable m_total to show with 2 decimal numbers, like, p.e. x,yz.

Thanks

gampalu
Junior Poster in Training
78 posts since Mar 2006
Reputation Points: 21
Solved Threads: 0
 
Grunt
Junior Poster
152 posts since Jul 2006
Reputation Points: 197
Solved Threads: 12
 
Look in setprecision manipulator

But I'm not using cout... The variable m_total is shown at the dialog box in an edit box...

gampalu
Junior Poster in Training
78 posts since Mar 2006
Reputation Points: 21
Solved Threads: 0
 

you will have to format the string before it is displayed in the dialog box. If you are using MFC, then use CString's Format() method, for exaple

CString text;
float number = 12.123456;
text.Format("%.2f", number);
GetDialogItem(IDC_EDI1)->SetWindowText(text);

If you are not using MFC, then use standard C sprintf() function

char text[20];
float number = 12.123456;
sprintf(text,"%.2f", number);
GetDialogItem(IDC_EDI1)->SetWindowText(text);
Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

I'm using MFC and I tried your exmeple but I get this:

--------------------Configuration: calculator - Win32 Release--------------------
Compiling...
calculatorDlg.cpp
D:\vários\mail\calculator\calculatorDlg.cpp(201) : error C2065: 'GetDialogItem' : undeclared identifier
D:\vários\mail\calculator\calculatorDlg.cpp(201) : error C2227: left of '->SetWindowTextA' must point to class/struct/union
Error executing cl.exe.

calculator.exe - 2 error(s), 0 warning(s)


:sad: Can you figure out why?
thanks

gampalu
Junior Poster in Training
78 posts since Mar 2006
Reputation Points: 21
Solved Threads: 0
 

Sorry about the mistake. Should have been GetDlgItem

Alternatively, if you used ClassWizard to assign a CString variable to the edit control, then you don't need to call GetDlgItem() but use that variable instead, then call UpdateData(FALSE) to update the edit control.

If you are new to MFC and you are using VC++ 6.0 compiler you might want to read the Microsoft Scribble tutorial , which will show you how to do all that neat stuff.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

Sorry about the mistake. Should have been GetDlgItem

Alternatively, if you used ClassWizard to assign a CString variable to the edit control, then you don't need to call GetDlgItem() but use that variable instead, then call UpdateData(FALSE) to update the edit control.

I've used the alternative you gave me and it works :)
thanks for your attention.
If you are new to MFC and you are using VC++ 6.0 compiler you might want to read the Microsoft Scribble tutorial , which will show you how to do all that neat stuff.
This link it's in my bookmarks :cheesy:
thanks again

gampalu
Junior Poster in Training
78 posts since Mar 2006
Reputation Points: 21
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You