Long double didn't work over 1e+308 
Author Message
 Long double didn't work over 1e+308

Thank you..for your help
    My work is on win95.I'm trying to multiply very high value over 1e+308
so I use long double...but it still have the range same as double.I already
read help that told me long double in win95 automatically convert to double
because double in win95 use 64-bits that covered long double range,isn't
it???
    I don't know what to do...please help me
                                                    Thank you very much
                                                    Wara Kongkavitool



Mon, 22 Jan 2001 03:00:00 GMT  
 Long double didn't work over 1e+308
You could try to make your entire calculation in the coprocessor in assembler,
because it uses 80 Bit precision internally. Just the result has to be less
than 1e308 for storing it to a double.


Mon, 22 Jan 2001 03:00:00 GMT  
 Long double didn't work over 1e+308

Quote:

> Thank you..for your help
>     My work is on win95.I'm trying to multiply very high value over 1e+308
> so I use long double...but it still have the range same as double.I already
> read help that told me long double in win95 automatically convert to double
> because double in win95 use 64-bits that covered long double range,isn't
> it???

The implementation of long double has nothing to do with Win95, it has
to do
with your compiler. I assume you are using VisualC++ and I'm afraid that
VisualC++ 5.0 does not support long double as a distinct type. You can
verify this by noting that sizeof(double) == sizeof(long double) == 8.

4.2 claimed to partially support long double, and I believe previous
compilers
fully supported it.

Unfortunately, the available 80x86 instructions for long double
operations are
very restrictive compared to those for doubles, thus requiring a totally
separate code generator - so I do sympathize with Microsoft's decision
(as
annoying as it is). On the 680x0 the FPU instructions all supported all
three
sizes, so supporting long double was trivial.

Your options are:

1) Recode your app to not need such large numbers.
2) Use a high precision math class.
3) Use assembly language.
4) Use a different compiler.

--
.Bruce Dawson, Cavedog Entertainment.
Makers of Total Annihilation - http://www.cavedog.com



Mon, 22 Jan 2001 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Long double didn't work over 1e+308

2. system(type system.c)....didn't work!

3. SYSTEM CALL in a while loop didn't work

4. Unable to display help - Tried the reg stuff it didn't work

5. DoModal didn't work, why ?

6. Long long and long double

7. Double to string: _fcvt no longer works ???!!!

8. ANSI C: printf'ing long doubles ?

9. can long double be less precise than double?

10. long long integer and double precision number

11. addition long values to long double value ?

12. epsilon for float, double long double

 

 
Powered by phpBB® Forum Software