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
%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] -
"%g" is not working !How can i do that ?
Bravoone
Bravoone_2006 wrote:
How can i do that ?
by reading the
CString::Format()
documentation ! :zzz:
[VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]
-
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_
_AnShUmAn_ wrote:
I think you must read the documentation rather than starting to build on the project
no, you forget the prerequisite step : learn C++ :doh: this guy is f*cking too lazy and keeps asking since months now dumb questions
[VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]