|
Hi! I m working on a c++ project in which I have two values one is 987654321123456789 and another is 1000000000000000000. My problem is that I m dividing first value by second value which is a decimal type value in result, when I do this I store the result in a double value after typecasting the above calculation by double but it give wrong result. The result is .98755432112346 which is wrong the exact result is .987554321123456789.
The code which I use is as -.
double dd = double(987554321123456789 /1000000000000000000)
After calculation
dd = .98755432112346
which is wrong because the actual result is .987554321123456789.
So how I do this calculation so that I get the correct result please help me regarding this
Thanks
|
|
|
|
|
nitin_pro wrote: So how I do this calculation so that I get the correct result please help me regarding this
You can't. Approximation it's the very nature of floating point numbers (possibly because memory locations can hold only a discrete set of values).
See [^].
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Hi!
Actually my problem is that when I perform
double dd = double(987554321123456789 /1000000000000000000)
this calculation the result is truncated up to 15 digit and it gives result dd = 0.98755432112346
but I want result completely means up to 18 digit may be it’s the limitation of Double data type that it can only store result up to 15 digit bt if it is tn I need some other data type which can store complete result yp to 18 digit.
Pls help me to store complete result manse 0.987554321123456789 without truncation .
|
|
|
|
|
Why don't you keep it inside long long assuming implicit multiplication by 10^18 ?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
The FPU (x87) uses 80-bit fields for its operations for loading and storing back and forth from the x87 stack. However the Microsoft run-time library sets the default internal precision of the math coprocessor to 64 bits in Windows XP. This can be controlled by the function _controlfp which is documented here:
http://msdn2.microsoft.com/en-us/library/e9b52ceh(VS.80).aspx[^]
There are some documents where Microsoft claims the precision can be changed to the full 80 bits such as this document:
http://support.microsoft.com/kb/q263213/[^]
These documents conflict with some of the statements in this document:
http://msdn2.microsoft.com/en-us/library/y0ybw9fy(VS.80).aspx[^]
Such things are common in the MSDN. I personally believe its a documentation error or perhaps they are not explaining all of the details. I have never tried it nor tested it however. Try it and see.
Best Wishes,
-David Delaune
|
|
|
|
|
|
|
Hi,everybody. I have a little question: is there MFC Class which allows to obtain R,G,B - value of each pixels in jpeg-file?
|
|
|
|
|
CImage::Load then CImage::GetPixel()
|
|
|
|
|
|
And then use of GetRvalue or G or B.
|
|
|
|
|
m_pAnimate = new CStatusbarAnimate; cause crash with the following info below when called from thread
work fine normally, any resolution please...
The instruction at "0x00402150" referenced memory at "0x00b9004c". The memory could not be "written".
|
|
|
|
|
|
|
From secondary threads post messages whenever appropriate to themain thread and let the latter doing the actual GUI updating work.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Ohh got it, CWinThread *thpbar; is private... i made it public
Now I am not getting the error, but avi is not playing on Status bare of main frame.
UINT TestDlg::thPrgbar( LPVOID pParam )
{
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
pFrame->StartAnimation( IDR_AVITEST ,1);
MSG oMSG;
while(::PeekMessage(&oMSG, NULL, 0, 0, PM_NOREMOVE))
{
if(::GetMessage(&oMSG, NULL, 0, 0))
{
::TranslateMessage(&oMSG);
::DispatchMessage(&oMSG);
}
else
{
break;
}
}
}
|
|
|
|
|
Do you read my post?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
I am sorry, can u pls make me understand, now I dont have a crash, but need to update UI ...play Avi from thread, it works fine on button click event
|
|
|
|
|
As I already suggested, from the worker thread, send a message to the main thread whenever you need to play the animation and let the main thread itself to play it.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
|
|
Many Thanks Randor .... Actually ..I am modifying code of very large application, which has the same case, number of times, so I looking for a simply way to do this, with out change much in the existing code, So I planed to have a thread that plays avi and calling it when every required from all the dialog boxes...Am I going the right way...or is there any other work around...pls advice...
|
|
|
|
|
The code in my above response requires very little changes to the class, it even supports your multiple AVI resource ID and pane ID in the thread class. If you follow the instructions I have provided I am very confident that it will solve your problem. Please try it and see.
Best Wishes,
-David Delaune
|
|
|
|
|
Ok Thanks you very much. Have a nice day.... bye
|
|
|
|
|
Hi All,
I am using VC++ 2003 and Oracle 10. I have created a table in Oracle.
The table has ten fields including a primary key (field).
Is there any function in VC++ to know the extracted field (from database) is primary key?
I am using ODBC..
|
|
|
|