我有一个UINT16
无符号整数说
4455, 312, 560 or 70.
如何使用 printf 在最后两位数字之前插入小数点,以便示例数字显示为
44.55, 3.12, 5.60 or 0.70
如果没有 printf 解决方案,是否还有其他解决方案?
我不想使用浮点数。
%.2d
可以添加额外的填充零
printf("%d.%.2d", n / 100, n % 100);
例如,如果n
是560
,则输出为:5.60
编辑:我一开始没有注意到UINT16
,根据@Eric Postpischil 的评论,最好使用:
printf("%d.%.2d", (int) (x/100), (int) (x%100));
printf("%d.%.2d", x / 100, x % 100);
您可以直接使用printf 而不使用 float
printf("%d.%02d", num/100, num%100);
%02d 表示右对齐零填充。
if num is 4455 ==>output is 44.55
if num is 203 ==>output is 2.03
编辑:
通过查看@ Eric Postpischil 的评论,最好这样使用。
printf("%d.%02d", (int) (num/100), (int) (num%100));
具有 int x1000 精度 1234123 -> 1234.123
printf("%4d.%.3d\n", x / 1000, x % 1000);
如果您需要四舍五入到小数点后 2
printf("%4d.%.2d\n", ((x+5)/10) / 100, ((x+5)/10) % 100);
仅测试为阳性
input print
000004 0.00
000005 0.01
000014 0.01
000015 0.02
000100 0.10
000101 0.10
000105 0.11
000994 0.99
000995 1.00
...