2010-01-12 2 views
0

저는 블록 압축 스파 스 행 형식의 희소 행렬을 만들고 있습니다. 0이 아닌 요소를 64 비트 부동 소수점으로 변환해야합니다. 나는 C에서 구문이 필요해. C++ ?C 프로그램에서 10 진수를 64 비트 부동 소수점 숫자로 변환하는 방법은 무엇입니까?

+3

스파 스 매트릭스의 요소 유형은 무엇입니까? –

+0

내 질문보기, 64 비트 이진 부동 소수점 숫자로 정수 값을 변환하고 싶습니다 ... 거기에 사용할 수있는 구문이 있나요? 이 이진 부동 번호는 무엇입니까? ?? plz rply .. 감사합니다. – Gauri

답변

1

숫자를 문자열로 저장 했습니까? 예 할 경우 (이 C와 C++ 모두에서 작동) :

const char *number = "11.111"; // This the variable holding your number 
double num = atof(number); // This is your number saved as a double, that is usually 64 bit 

당신은 당신이 간단하게 할 수있는, intdouble, float을 저장 한 경우 :

double num = other_variable; 

다시 말하지만, 그것은 작동합니다 C와 C++ 모두에서.

+1

atof를 피하십시오 - strtod를 선호합니다 –

+0

닐, 왜? [15 chars] –

+0

strtod() (및 strtol()은 해당 문제이므로) 변환 중에 예상치 못한 오버플로 결과가 발생하지 않아야합니다. atof()는 문자열 "0.0"과 일부 잘못된 입력에 대해 0.0을 반환합니다. "double strtod (const char * str, char ** ptr)"의 경우, ptr의 값이 (char **) NULL이 아닌 경우에는 포인터가 가리키는 변수가 마지막 숫자 다음의 문자를 가리 키도록 설정되고, 있다면, 그것은 인정되었습니다. 수를 형성 할 수없는 경우 * ptr은 str로 설정되고 0이 리턴됩니다. http://www.docs.hp.com/en/B2355-60127/strtod.3C.html –

관련 문제