- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have computed the following :
-------------------------------
real(kind=8) :: x, y, z
x = 1.0_8
y = 0.9747_8
z = x - y
---------------------------------
but the result is "2.529999999999999E-002", not "2.53e-002".
Why this happen?
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As the 53-bit binary precision of real(8) is equivalent to 15 to 17 decimal digits precision, and you lose a few bits by subtraction of similar magnitute numbers, that's all the accuracy you can expect. If you would specify formatting with rounding to 15 or fewer digits, you should get what you expected.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page