84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
小伙看你根骨奇佳,潜力无限,来学PHP伐。
sprintf难道不够高效?不用库函数把sprintf关于%f的拿出来就好了。
如果你想连sprintf对%的处理都省掉的话,建议使用_gcvt_s函数。
使用方法如下:
char buffer[320]; _gcvt_s(buffer, 320, number, 30); vint len = (vint)strlen(buffer); if (buffer[len - 1] == '.') { buffer[len - 1] = '\0'; }
如果你使用的编译期没有_gcvt_s的话,可以自己封装一个:
void _gcvt_s(char* buffer, size_t size, double value, vint numberOfDigits) { sprintf(buffer, "%f", value); char* point = strchr(buffer, '.'); if(!point) return; char* zero = buffer + strlen(buffer); while(zero[-1] == '0') { *--zero = '\0'; } if(zero[-1] == '.') *--zero = '\0'; }
这样程序在别的编译期下既,而且在VC++下面又可以发挥优异的性能。
为什么没有人提grisu算法。它是一个最快的,“完全正确”的算法放库跑:https://github.com/night-shift/fpconv
grisu
sprintf难道不够高效?
不用库函数把sprintf关于%f的拿出来就好了。
如果你想连sprintf对%的处理都省掉的话,建议使用_gcvt_s函数。
使用方法如下:
如果你使用的编译期没有_gcvt_s的话,可以自己封装一个:
这样程序在别的编译期下既,而且在VC++下面又可以发挥优异的性能。
为什么没有人提
grisu
算法。它是一个最快的,“完全正确”的算法放库跑:https://github.com/night-shift/fpconv