以下我尝试设置格式说明符,但每次调用函数时我想以不同的方式进行。重点是要打印浮点数Data_Ave。在一个实例中,我想要说明符%2.3f,因此我会将sig_figs_before设为2,将sig_figs_after设为3。在下一个实例中,我想要%1.4f,所以我会传递这些整数。
char * Send_Data(float Data[10], const char* SUBJECT_SEND_NAME, char *Data_Backup, int sig_figs_before, int sig_figs_after)
{
float Data_Ave = ((Data[0] + Data[1] + Data[2] + Data[3] + Data[4] +
Data[5] + Data[6] + Data[7] + Data[8] + Data[9])/10);
sprintf(msgBody,"%%i.%if, ", before_decimal, after_decimal, Data_Ave);
... //Some more code
}
我相信这样做不会起作用,所以我考虑将浮点数拆分为两个整数,并像这样打印:
sprintf(msgBody,"%i.%i, ", int_value, decimal_value);
但我不知道如何正确地分割浮点数。有什么建议吗?