0
現在,我所知道的唯一功能是_snprintf_s
像下面高效的功能,浮點/雙精度轉換爲字符串
double dMyValue = <some value>;
_snprintf_s(pszMyBuffer, sizeof(pszMyBuffer), 12, "%.10f", dMyValue);
現在,我所知道的唯一功能是_snprintf_s
像下面高效的功能,浮點/雙精度轉換爲字符串
double dMyValue = <some value>;
_snprintf_s(pszMyBuffer, sizeof(pszMyBuffer), 12, "%.10f", dMyValue);
看起來像您使用Visual C++。還有_fcvt_s
,_ecvt_s
和_gcvt_s
。與_snprintf_s
的主要區別在於它們不解析格式字符串,所以它們應該更有效一些。 C運行時庫函數通常是很好的調整,所以你可能不會有任何問題。
如果您碰巧知道該值被限制在某個範圍內,您可能會擊敗內置函數。例如:
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);
但我敢打賭,你已經有更大的魚去別的地方炒了。
你使用哪種語言? – Emily
看起來像普通的老C對我。 – rein
snprintf和朋友可能相當有效。 – 2009-10-12 23:48:51