【发布时间】:2010-05-12 00:10:37
【问题描述】:
我正在将 double 转换为 char 字符串:
char txt[10];
double num;
num = 45.344322345
sprintf(txt, "%.1f", num);
并使用“.1f”将小数位截断到十分位。
即 - txt 包含 45.3
我通常在 sprintf 中使用精度来确保字符缓冲区不会溢出。 在不使用 snprintf 的情况下,我如何在此处截断小数点?
(即如果由于某种原因 num = 345694876345.3)
谢谢
EDIT 如果 num 是 > buffer 结果不再重要,只是不想崩溃。不确定在这种情况下什么最有意义。
EDIT2 我应该比标签更清楚,这是一个 C 程序。 我在 C 程序中使用 snprintf 时遇到问题。 I don't want to add any 3rd party libraries.
【问题讨论】:
-
如果无法正确打印结果,您希望结果是什么?