基于“IEEE”规范:
“当输入或结果是NaN时,该标准不解释NaN的符号。”
但是,printf
会将NaN
值打印为已签名:nan
或-nan
有人可以在nan
和打印-nan
时向我指出一组规则(来自规范吗?)
例如,我检查了printf(-1.0f)
打印-nan
谢谢
答案 0 :(得分:5)
NaN的基础表示包含符号位,这是printf
在决定是否应该打印减号时所看到的。
标准表示应忽略符号位的原因是允许否定或绝对之类的东西简单地修改符号位,而不必强制检查如果输入值是NaN。