Finding minimum normalized positive number

In summary, the conversation discusses the process of finding the minimum normalized positive number that can be represented in a computer. The value is 2.2250738585072014e-308 and the program is used to find the machine precision. The speaker suggests making some parameter changes, such as changing the cast to a double, and looking in the limits.h file for relevant values.
  • #1
~electric~
14
0
Hello,
I was asked to write a C program to find minimum normalized positive number that can be represented in my computer. I know that the value is 2.2250738585072014e-308.
I wrote the program to find the machine precision. Now i need to make some parameter changes to this program to find the min. number given above.
do
{
Epsilon = Epsilon/2.0 ; //Variable value is halved until the smallest
//value of 'e' is found while meeting the
//required condition
}
while ((float)((Epsilon+1.0))>1.0);

Epsilon = 2*Epsilon;

this gave me the machine precision. Any help would be appreciated.
thanks in advance.
 
Technology news on Phys.org
  • #2
I'm confused. You've casted Epsilon to a float (single precision), yet the value you shows is the POSIX value for min double precision numbers. Make Epsilon a double precision variable, and change the cast (float) to (double) - for starters.

Also, look in the limits.h file (unless you are on windows) for DBL_MIN and FLT_MIN.
 
  • #3


Hi there,

Great job on finding the machine precision! To find the minimum normalized positive number, you can use the same approach but with a slight modification. Instead of starting with Epsilon=1, start with a larger value such as 1.0e+100. Then, continue dividing it by 2 until the smallest value of 'e' is found while still meeting the condition of ((Epsilon+1.0))>1.0. This will give you the minimum normalized positive number, which in your case is 2.2250738585072014e-308.

Hope this helps! Keep up the good work.
 

Similar threads

Back
Top