C编程 : Does Modulus Ignore Leading Zeros in Result ? 如何停止?

标签 c modulo modulus

<分区>

我正在用 C 编写微 Controller ,由于编译器或芯片不能很好地处理 float ,建议将浮点值放大到足以去掉小数,然后在输出数字时,通过比例除法将其缩小,并使用模数来查找和显示小数部分。这是一个例子: 以数字 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编程 : Does Modulus Ignore Leading Zeros in Result ? 如何停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46538184/

相关文章:

objective-c - 识别低频噪声中短促的高频声音(objc/c)

c - `int` 数组中的无效输出

c++ - 模除法返回负数

algorithm - 能被 n 整除的和

java - Z3 Solver Java API:为RealExpr实现模运算

python - 列表函数中的奇数和偶数 - Python

c - 为什么 "scanf"有效但 fgets 在 C 中不起作用?

python - 带有 SWIG 未知长度数组的 NumPy C 扩展

c - C中模数(数学函数)的等价物?

math - F#:整数 (%) 整数 - 是如何计算的?