Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
鉴于:
double value = -59.5968;
代码必须将值显示为 60:
sprintf(array, "%.0f", value);
这有效,除非当值 -0.3959 的 0 显示为 -0 时;它应该只显示 0 表示 -0.3959。
你能提出一些克服这个问题的方法吗?
代码必须符合MISRA 标准;它用于汽车环境。
C99 和 C11 标准提供了大量与舍入浮点数相关的函数,包括:
ceil()
floor()
nearbyint()
rint()
lrint()
round()
lround()
trunc()
其中round(),rint()和nearbyint()是您可能正在寻找的那些。