-3
我想在C中精度爲12位小數。我不知道是否有更簡單的解決方案。但至少該代碼有效。現在,我只是試圖將結果保存爲「長雙」,但「strtold()」不工作C中有12位小數乘以多少?
char* multiply12Decimals(float n1, float n2)
{
long n1Digits;
sscanf(doubleToVoidPointerInNewMemoryLocation(n1*1000000), "%ld", &n1Digits);
printf("n1Digits: %ld\n", n1Digits);
long n2Digits;
sscanf(doubleToVoidPointerInNewMemoryLocation(n2*1000000), "%ld", &n2Digits);
printf("n2Digits: %ld\n", n2Digits);
long long mult = (long long) n1Digits*n2Digits;
printf("mult: %lld\n", mult);
char *charNum = malloc(30*sizeof(char));
sprintf (charNum, "0.%012lld\n", mult);
printf("result: %s\n", charNum);
return charNum;
}
代碼中沒有strtold!什麼是「doubleToVoidPointerInNewMemoryLocation」的定義 –
int main() { float f1 = 2.053388; float f2 = 0.100269; long double f3; f3 = strtold(multiply12Decimals(f1,f2),NULL); printf(「Final:%Lf」,f3); return 0; } – CEAC
這段代碼根本沒有意義。爲什麼你認爲你需要間歇性地改變字符串和什麼 –