내가 정말로해야할 것은 정밀도 손실없이 부동 소수점 숫자를 C로 내보내는 것이다.파이썬 2.5에서 파이썬 부동 소수점을 16 진수 문자열로 변환하려면 어떻게해야합니까? Nothing working solution attached
import math
import struct
x = math.sqrt(2)
print struct.unpack('ii', struct.pack('d', x))
# prints (1719614413, 1073127582)
을 그리고 C에서 나는이 시도 :
내가 파이썬에서 이런 짓을#include <math.h>
#include <stdio.h>
int main(void)
{
unsigned long long x[2] = {1719614413, 1073127582};
long long lx;
double xf;
lx = (x[0] << 32) | x[1];
xf = (double)lx;
printf("%lf\n", xf);
return 0;
}
을하지만 C에서 내가 얻을 :
7385687666638364672.000000하지 SQRT (2).
무엇이 누락 되었습니까?
감사합니다.
좋아, 나는 내 C에서 녹슬지 만 확실히 그렇긴하지만 문자열로 내보내고 C에서 이중으로 변환하는 것이 잘못된 이유는 무엇입니까? –