gpt4 book ai didi

c - printf 有符号整数和小数点,带负号的问题

转载 作者:行者123 更新时间:2023-11-30 15:33:39 27 4
gpt4 key购买 nike

dsPIC33、XC16 编译器。

dat1 的符号为 INT16,其值为 16434 和 -16434,将打印为 164.34 和 -164.34。

printf("---: +/-180 from North   %d.%02d (deg)\n",(dat1/100),(dat1%100));

使用 dat1=164.34,我得到

---: +/-180 from North -164.34 (deg)

使用 dat1=-164.34,我得到

---: +/-180 from North -164.-34 (deg)

==> 如何去掉“-.34”上的减号?

最佳答案

你的陈述几乎是正确的,只是你想去掉第二个数字中的符号。您可以使用此语句。

printf("---: +/-180 from North   %d.%02d (deg)\n", dat1/100, abs(dat1)%100);

编辑: 感谢@chux。

上面的代码在 -180.00 到 180.0 度的所需范围内工作。当您需要更通用的方法时,您应该在调用 abs() 之前移动模运算。

推迟 abs() 可以避免 INT_MIN 时出现问题,因为 abs(INT_MIN) 可能会产生意外结果。那么代码应该是:

printf("---: +/-180 from North   %d.%02d (deg)\n", dat1 / 100, abs(dat1 % 100));

关于c - printf 有符号整数和小数点,带负号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com