请问一个字符格式化的问题?
有四个变量:
float a,b,c,d;
请问当变量a,b,c,d中不确定其中的数据是否有小数位?
我想格式化字符串的结果为: 有小数位的格式化为:%1.2f,没有小数位的格式化为整数显示。
比如:
a = 100;
b = 10.1;
c = 10;
d = 20.111;
格式化后的结果为: 100 10.10 10 20.11
请问只用c语言的格式化,有没有什么办法高效的实现呀?
[解决办法]
void GetFormat(char *format ,float f){ if (0 != *format) strcat(format ,","); if (f > (int)f) strcat(format ,"%1.2f"); else strcat(format ,"%.0f");}int main(){ float f1 = 100; float f2 = 10.1; float f3 = 10; float f4 = 20.111; char format[64] = {0}; GetFormat(format ,f1); GetFormat(format ,f2); GetFormat(format ,f3); GetFormat(format ,f4); char des[64] = {0}; sprintf(des ,format ,f1,f2,f3,f4);}