This question already has answers here:
Closed 2 years ago.
Printing leading 0's in C?
(10个答案)
keeping leading zeros in C [duplicate]
(3个答案)
我正在用C语言编写一个微控制器,由于编译器或芯片不能很好地处理浮点数,所以建议将浮点数放大到足够大的程度,以便去掉小数,然后在输出数字时,用比例除法将其缩小,并使用模数来查找和显示小数部分。下面是一个例子:
从数字25.0625开始。乘以10000得到250625。很好,现在我们没有浮子了。现在要显示这个,我们使用这样一行:
sprintf(buffer, "%li.%i", Temp / 10000, abs(Temp % 10000));

所以我们首先通过25/ 10000取出来,然后通过0625% 10000取出来。但问题是:似乎我的模结果忽略了0625中的前导零,所以当它将数字连接起来时,它变为25.625而不是25.0625。我不能指望总是有一个前导零,所以在其中填充一个零并没有答案,在其他时间可能有几个前导零。我的问题是,如何抑制模排除前导零?感谢

最佳答案

您可以告诉sprintf将数字格式化为前导零的4位字段。

sprintf(buffer, "%li.%04d", Temp / 10000, abs(Temp % 10000));

Printing leading 0's in C?

关于c - C编程:模数是否忽略结果中的前导零?我该如何阻止它? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46538184/

10-13 07:24