84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
小伙看你根骨奇佳,潜力无限,来学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