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