【发布时间】:2012-04-14 17:42:25
【问题描述】:
您可以使用 printf 字段宽度说明符截断字符串:
printf("%.5s", "abcdefgh");
> abcde
不幸的是它不适用于数字(将d替换为x是一样的):
printf("%2d", 1234); // for 34
printf("%.2d", 1234); // for 34
printf("%-2d", 1234); // for 12
printf("%-.2d", 1234); // for 12
> 1234
是否有一种简单/简单的方法来指定要打印的位数,即使这意味着截断数字?
MSDN 特别是says that it will not happen,这似乎是不必要的限制。 (是的,它可以通过创建字符串等来完成,但我希望有一个 “printf trick” 或聪明的组合。)
【问题讨论】:
-
我还不能发表评论,所以我要添加一个新答案,在数学上不可能比 log 更快地进行截断,如果你找到了,那么你可以从它。
标签: printf truncate format-specifiers