C运算符/的注意点

探讨了从厘米转换到英尺和英寸时遇到的精度问题,特别是使用除法运算符(/)时,两端数据类型的不同导致的结果差异。文章详细解释了如何正确处理浮点数,以避免因截断而导致的误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/运算符当两边的精度不同采取不同的运算方法

PAT 7-1

7-1 厘米换算英尺英寸 (15 分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
输入的是cm,换算公式应为:
foot为(cm÷100÷0.3048)对应的整数部分;
inch为(cm÷100÷0.3048)对应的小数部分×12;

关键为分离浮点数cm÷100÷0.3048的整数部分和小数部分。
但我写程序的时候问题出在了 / 这个运算符上
/运算符当两端都为整数的时候,结果为截断的整数;
当两端有一个为浮点数时,结果为浮点数。

所以cm/100/0.3048当中,cm/100这一步已经进行了截断,导致结果出现错误。
改进:cm/30.48 即将/100/0.3048合并。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值