我試圖用sprintf
這樣來填充雙值的字符串:如何使用「%F」來填充雙值轉換成字符串以正確的精度
sprintf(S, "%f", val);
但精度被切斷到小數點後六位。我需要大約10位小數的精度。
這怎麼能實現?
我試圖用sprintf
這樣來填充雙值的字符串:如何使用「%F」來填充雙值轉換成字符串以正確的精度
sprintf(S, "%f", val);
但精度被切斷到小數點後六位。我需要大約10位小數的精度。
這怎麼能實現?
%[寬度]。[精度]
寬度應包括小數點。
%8.2表示8個字符寬;點前5位數字,後2位數字。一個字符是爲該點保留的。
5 + 1 + 2 = 8
你想要的是一個定語:
sprintf(S, "%.10f", val);
人的sprintf將對格式說明很多的更多細節。
小心 - sprintf的輸出將通過C語言環境變化。這可能是也可能不是你想要的。請參閱區域設置文檔/手冊頁中的LC_NUMERIC。
%f
用於浮點值。
嘗試使用%lf
來代替。它是爲雙打設計的(過去稱爲長浮標)。
double x = 3.14159265;
printf(「15.10lf \ n」,x);
只是一個說明:如果他使用雙倍,會使用「lf」更正確嗎? – 2008-09-16 06:21:57