CString::Format
-
How can i make this : i have this code : csText.Format("%d", nSum); ok but my result is lets say 44,ok but if i have 22.3+22.3=44.6(nSum) this is not working : csText.Format("%d", nSum); How can i make this?(to have the result whit 44.6 lets say not 44)
Bravoone
-
How can i make this : i have this code : csText.Format("%d", nSum); ok but my result is lets say 44,ok but if i have 22.3+22.3=44.6(nSum) this is not working : csText.Format("%d", nSum); How can i make this?(to have the result whit 44.6 lets say not 44)
Bravoone
nSum is an int value. So it truncates the value up to the decimal point. You need to take a float or a double variable. // say nSum is float type csText.Format("%f",nSum);
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
-
How can i make this : i have this code : csText.Format("%d", nSum); ok but my result is lets say 44,ok but if i have 22.3+22.3=44.6(nSum) this is not working : csText.Format("%d", nSum); How can i make this?(to have the result whit 44.6 lets say not 44)
Bravoone
%d
is the type format specifier for signed decimal decimal, for floaing point numbers you can use, for instance,%g
. see http://msdn2.microsoft.com/en-us/library/hf4y5e3w(VS.80).aspx[^] (remember thatCString::Format
behaves likesprintf
). :)If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
-
%d
is the type format specifier for signed decimal decimal, for floaing point numbers you can use, for instance,%g
. see http://msdn2.microsoft.com/en-us/library/hf4y5e3w(VS.80).aspx[^] (remember thatCString::Format
behaves likesprintf
). :)If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
CPallini wrote:
for floaing point numbers you can use, for instance, %g. see
:doh:
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
-
CPallini wrote:
for floaing point numbers you can use, for instance, %g. see
:doh:
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
-
CPallini wrote:
for floaing point numbers you can use, for instance, %g. see
:doh:
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
ok,but i need 2 digits 44.66 lets say... then what ?
Bravoone
-
Don't you like
%g
? :-DIf the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
"%g" is not working !How can i do that ?
Bravoone
-
ok,but i need 2 digits 44.66 lets say... then what ?
Bravoone
-
ok,but i need 2 digits 44.66 lets say... then what ?
Bravoone
Don't you read documentation, do you? :mad: try:
csText.Format("%.2f", nSum);
BTWnSum
is a misnaming for afloat
if you are using Hungarian Notation. :-DIf the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
-
"%g" is not working !How can i do that ?
Bravoone
-
Don't you read documentation, do you? :mad: try:
csText.Format("%.2f", nSum);
BTWnSum
is a misnaming for afloat
if you are using Hungarian Notation. :-DIf the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
csText.Format("%.2f", nSum); is not working why? i have read documentation but is not working !any why ?
Bravoone
-
ok,but i need 2 digits 44.66 lets say... then what ?
Bravoone
-
csText.Format("%.2f", nSum); is not working why? i have read documentation but is not working !any why ?
Bravoone
Bravoone_2006 wrote:
csText.Format("%.2f", nSum); is not working why?
What do you mean with the generic is not working? :confused: Please detail the misbehaviour (i.e. obtained result vs expected result). BTW Have you correctly declared
nSum
as floating point number? :)If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
-
try like this:
float uSum = 12.457 + 345; CString strFomat; strFomat.Format(TEXT("%.2f"),uSum);
How can i do that ? lets say in list i have 44.22+44.22 the result must be in csText 88.44 HOW can i do that? int nSum = 0; int uSum = 0; for( int nRow = 0; nRow < m_list1.GetItemCount();nRow++) { if(m_list1.GetCheck(/*index of item*/nRow)) { csText = m_list1.GetItemText( nRow, 2 ); uSum += atoi( csText); csText.Format("%.2f",uSum); m_sum.SetWindowText(csText); } } this code give the result : lets say i have in list 44.22+44.22 the result in csText is 88.00 but i need 88.44 HOW ?
Bravoone
-
How can i do that ? lets say in list i have 44.22+44.22 the result must be in csText 88.44 HOW can i do that? int nSum = 0; int uSum = 0; for( int nRow = 0; nRow < m_list1.GetItemCount();nRow++) { if(m_list1.GetCheck(/*index of item*/nRow)) { csText = m_list1.GetItemText( nRow, 2 ); uSum += atoi( csText); csText.Format("%.2f",uSum); m_sum.SetWindowText(csText); } } this code give the result : lets say i have in list 44.22+44.22 the result in csText is 88.00 but i need 88.44 HOW ?
Bravoone
don't use atoi(). instead use atof() I think you must read the documentation rather than starting to build on the project. atoi converts a string to int and not to a float and then when you add them it returns an int in uSum which is just printed as a float value.
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
-
How can i do that ? lets say in list i have 44.22+44.22 the result must be in csText 88.44 HOW can i do that? int nSum = 0; int uSum = 0; for( int nRow = 0; nRow < m_list1.GetItemCount();nRow++) { if(m_list1.GetCheck(/*index of item*/nRow)) { csText = m_list1.GetItemText( nRow, 2 ); uSum += atoi( csText); csText.Format("%.2f",uSum); m_sum.SetWindowText(csText); } } this code give the result : lets say i have in list 44.22+44.22 the result in csText is 88.00 but i need 88.44 HOW ?
Bravoone
-
don't use atoi(). instead use atof() I think you must read the documentation rather than starting to build on the project. atoi converts a string to int and not to a float and then when you add them it returns an int in uSum which is just printed as a float value.
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
ok but... : uSum += atof( csText); warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data Why?
Bravoone
-
ok but... : uSum += atof( csText); warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data Why?
Bravoone
because nSum has data type int. :)
-
ok but... : uSum += atof( csText); warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data Why?
Bravoone
uSum is an int. so you would need to use typecasting or declare uSum as a float. I think you are missing on the basics. :|
Bravoone_2006 wrote:
ok but... : uSum += atof( csText); warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
It would be better if you read some tutorials on typecasting, using variables and reading some more basics and some more............................and a few more....................:rolleyes:
Somethings seem HARD to do, until we know how to do them. ;-)_AnShUmAn_
-
ok but... : uSum += atof( csText); warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data Why?
Bravoone
Bravoone_2006 wrote:
Why?
You declare an integer, how would you expect to store a floating point value into it and expect that it still holds a floating point value ? I think you REALLY need to find some good book about the basics of C++. I mean, knowing what an integer and a double are, is at least the bare minimum. It's the thing you learn at very very begining.
Cédric Moonen Software developer
Charting control [v1.2]