2009-10-12 67 views
0

現在,我所知道的唯一功能是_snprintf_s像下面高效的功能,浮點/雙精度轉換爲字符串

double dMyValue = <some value>; 
_snprintf_s(pszMyBuffer, sizeof(pszMyBuffer), 12, "%.10f", dMyValue); 
+1

你使用哪種語言? – Emily

+0

看起來像普通的老C對我。 – rein

+0

snprintf和朋友可能相當有效。 – 2009-10-12 23:48:51

回答

1

看起來像您使用Visual C++。還有_fcvt_s,_ecvt_s_gcvt_s。與_snprintf_s的主要區別在於它們不解析格式字符串,所以它們應該更有效一些。 C運行時庫函數通常是很好的調整,所以你可能不會有任何問題。

1

如果您碰巧知道該值被限制在某個範圍內,您可能會擊敗內置函數。例如:

if (v < 0){ 
    strcat(s, "-"); s++; 
    v = -v; 
} 
double di = floor(v); 
double frac = v - di; 
int i = (int)di; 
int f = (int)floor(frac * 1e10); 
strcat(s, itoa(i)); s += strlen(s); 
strcat(s, "."); s++; 
strcat(s, itoa(f)); s += strlen(s); 

但我敢打賭,你已經有更大的魚去別的地方炒了。

相關問題