double 0 to float conversion was incorrect

This commit is contained in:
Marty Kraimer
2002-03-08 14:59:01 +00:00
parent 8973bbdc3a
commit f67bdb4668
2 changed files with 6 additions and 2 deletions

View File

@@ -53,7 +53,9 @@
static void safeDoubleToFloat(double *pd,float *pf)
{
double abs = fabs(*pd);
if(abs>=FLT_MAX) {
if(*pd==0.0) {
*pf = 0.0;
} else if(abs>=FLT_MAX) {
if(*pd>0.0) *pf = FLT_MAX; else *pf = -FLT_MAX;
} else if(abs<=FLT_MIN) {
if(*pd>0.0) *pf = FLT_MIN; else *pf = -FLT_MIN;

View File

@@ -941,7 +941,9 @@ static long cvt_d_f(
struct dbAddr *paddr)
{
double abs = fabs(*from);
if(abs>=FLT_MAX) {
if(*from==0.0) {
*to = 0.0;
} else if(abs>=FLT_MAX) {
if(*from>0.0) *to = FLT_MAX; else *to = -FLT_MAX;
} else if(abs<=FLT_MIN) {
if(*from>0.0) *to = FLT_MIN; else *to = -FLT_MIN;