KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I found that running Math.Log10(double.Epsilon) will return about -324 on machine A, but will return -Infinity on machine B. They originally behaved the same way by returning -324 . Both machines started out using the same OS (WinXP SP3) and .NET version (3.5 SP1). There may have been Windows updates on machine B, but otherwise no changes are known to have happened. What could explain the difference in behavior? More details from discussions in comments: Machine A CPU is a 32-bit Intel Core Duo T2500 2 GHz Machine B CPU is a 32-bit Intel P4 2.4 GHz Results collected from code running in a large application using several 3rd party components. However, same .exe and component versions are running on both machines. Printing Math.Log10(double.Epsilon) in a simple console application on machine B prints -324 , NOT -Infinity The FPU control word on both machines is always 0x9001F (read with _controlfp() ). UPDATE: The last point (FPU control word) is no longer true: Using a newer version of _controlfp() revealed different control words, which explains the inconsistent behavior. (See rsbarro's answer below for details.)
Tags (comma-separated)
Save Edits
Cancel