void _atodbl(DOUBLE_s *d, char *str) { const char *EndPtr; _LDBL12 ld12; __strgtold12(&ld12, &EndPtr, str, 0, 0, 0, 0 ); _ld12tod(&ld12, d); }
FLT __cdecl _fltin(const char *str, int len_ignore, int scale_ignore, int radix_ignore) #endif { _LDBL12 ld12; DOUBLE x; const char *EndPtr; unsigned flags; int retflags = 0; flags = __strgtold12(&ld12, &EndPtr, str, 0, 0, 0, 0); if (flags & SLD_NODIGITS) { retflags |= CFIN_NODIGITS; *(u_long *)&x = 0; *((u_long *)&x+1) = 0; } else { INTRNCVT_STATUS intrncvt; intrncvt = _ld12tod(&ld12, &x); if (flags & SLD_OVERFLOW || intrncvt == INTRNCVT_OVERFLOW) { retflags |= CFIN_OVERFLOW; } if (flags & SLD_UNDERFLOW || intrncvt == INTRNCVT_UNDERFLOW) { retflags |= CFIN_UNDERFLOW; } } flt->flags = retflags; flt->nbytes = EndPtr - str; flt->dval = *(double *)&x; return flt; }