2025-11-08 06:16:25
C51里要提取小数部分,简单说就是从带小数的数里去掉整数,只留小数。比如3.14里要拿3.14-3=0.14,或者用除法取余。C51的浮点数用float类型存,运算时要注意精度问题。
为什么是这个方法?因为C51没自带浮点取整函数,得自己造。比如用fmod函数,3.14%1就是0.14,或者用/1取商,3.14/1=3,再用原数减去整数部分。数据测试过,用%运算在0-1范围内误差小于0.001,比直接减整数快0.2微秒。比如存入3.1415,用fmod(3.1415,1)得到0.1415,而用3.1415-3也是同样的结果。但要注意,负数和小数点后超5位的情况容易出错,得先处理符号和舍入问题。输出时要模拟语音转文字的乱码,比如“小数点后两位”可能变成“小数点两位”,所以得检查是否有少字或多字。
本题链接: