DelphiFAQ Home Search:

Floating point exception during TRUNC

 

commentsThis article has not been rated yet. After reading, feel free to leave comments and rate it.

Question:

My application throws a floating point exception during a Trunc() call. I use data type float.

Answer:

The error is possibly created earlier and surfaces late. In a similar situation I found that clearing any pending floating-point exceptions before the 'critical operation' helps.

There is an assembly function FNCLEX which will do exactly that. You can write yourself a Pascal wrapper around it as shown in the example below. The wrapper uses FNCLEX instead of FCLEX, see the commentary about the difference.

// FCLEX clears any floating-point exceptions which may be pending. 
// FNCLEX does the same thing but doesn't wait for previous floating-point 
// operations (including the handling of pending exceptions) to finish first.

procedure ClearPendingExceptions;
asm
  FNCLEX
end;
You don't like the formatting? Check out SourceCoder then!

Comments:

 

 

Email address (not necessary):

Rate as
Hide my email when showing my comment.
Please notify me once a day about new comments on this topic.
Please provide a valid email address if you select this option.
 
It seems that you are
from Washington, US .

Info/ Feedback on this

Show city and country
Show country only
Hide my location
You can mark text as 'quoted' by putting [quote] .. [/quote] around it.
Please type in the code:
photo Add a picture:

Please do not post inappropriate pictures. Inappropriate pictures include pictures of minors and nudity. The owner of this web site reserves the right to delete such material.