c – 为什么printf圆形浮点数?
发布时间:2020-12-16 09:10:04 所属栏目:百科 来源:网络整理
导读:我试图使用printf打印一些浮点数. 例如: int main(){ printf("%.1f",76.75); return 0;} 输出:76.8 我对结果有一些疑问. 首先,为什么不打印76.7? 第二,它是如何围绕这个数字的呢? 解决方法 除了现有的答案,请注意许多C编译器尝试遵循IEEE 754的浮点问题.
我试图使用printf打印一些浮点数.
例如: int main() { printf("%.1f",76.75); return 0; } 输出:76.8 我对结果有一些疑问. 首先,为什么不打印76.7? 第二,它是如何围绕这个数字的呢? 解决方法
除了现有的答案,请注意许多C编译器尝试遵循IEEE 754的浮点问题. IEEE 754建议根据当前舍入模式舍入从二进制浮点到十进制的转换.默认的舍入模式是“舍入到最近并且与偶数相关”.某些编译平台不考虑舍入模式,并且在从浮点到十进制的转换中始终根据默认的最近偶数模式进行舍入.
由于76.75完全代表7675/100,它恰好在76.7和76.8之间.当应用“round to nearest-even”时,后一个数字被认为是“偶数”.这可能是您的编译平台选择生成此十进制表示形式作为浮点数76.75的十进制转换的原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |