double value = 0;
value = atof((const char*)Buf);
pValD = (Ipp32f )value;
the result in pValD=19970500 , not 19970501
this error occurs when converting from double to Ipp32f.
Do you have any explanation?
Ipp32f is a 32bit floating point, double are generally 64 bits thus have more precision and can represent bigger numbers.
Not all natural numbers can be represented by floating points. In your case there is probably no representation for 19970501 in 32 bits but there is in 64 bits (I didn't do the math but you can convinced yourself if you look online for the internal representation of floating point).
Hope this help,
Yes you are right - flat has significant max 7 digits. The problem
is actually I need a fast conversion between string and Intel types.
In this case I have to use Microsoft's _atodbl. I am using vectors
and this would be a performance problem. Does Intel has a vector
string to Intel types conversion function?
typedef double Ipp64f;