C语言常数计算的问题,求解。谢谢。
无论下面采用哪种定义:
const float TrqStep_Max=150.0/20.0*2.0;
const float TrqStep_Max=150/20*2;
const float TrqStep_Max=150.1*2.0/20.0;
下列函数跑出来的Gttt都是14:
float Gttt;void funcB(float x, float y){ Gttt = (float)TrqStep_Max; if( fabsf(x-y) >= 30) FlagA = 1; else FlagA = 0; if( fabsf_local(x-y) >= 30) FlagB = 1; else FlagB = 0; return;}const float TrqStep_Max=150.0f/20.0f*2.0f;const float TrqStep_Max=150.0f/20.0f*2.0f;const float TrqStep_Max=150.1f*2.0f/20.0f;float Gttt;void funcB(float x, float y){ Gttt = (float)TrqStep_Max; if( fabsf(x-y) >= 30.0f) FlagA = 1; else FlagA = 0; if( fabsf_local(x-y) >= 30.0f) FlagB = 1; else FlagB = 0; return;}
[解决办法]
为什么我跑出来就是15呢?
[解决办法]
除数是20,而被除数并不很大,个位以下又是0。这样的计算是不会有不精确问题的。