我在我的c应用程序中使用gtk,并希望在窗口中显示一个double作为标签。
double d = 1000.50
label = gtk_label_new (d);
我收到了编译错误,因为该函数将字符串作为参数。
我习惯于java,它很容易将一个原语与一个字符串连接起来。它也很容易类型转换为double to string。我搜索了一个解决方案,但我只能在c ++中找到例子。
那么 - 如何对一个字符串进行类型转换,或者将一个双字符串连接到一个字符串?
感谢!!!
答案 0 :(得分:2)
snprintf
可用于执行此操作。您可以使用NULL指针调用snprintf
来评估缓冲区所需的大小,这样您就可以分配足够的值以使得生成的字符串适合。
double d = 1000.50
int len = snprintf(NULL, 0, "%f", d);
char *str = malloc(len+1);
snprintf(str, len, "%f", d);
label = gtk_label_new (str);