首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言常数计算的有关问题,求解。多谢

2012-05-09 
C语言常数计算的问题,求解。谢谢。无论下面采用哪种定义:const float TrqStep_Max150.0/20.0*2.0const flo

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:

C/C++ code
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;}


请问为什么既不是15、也不是14.xxxx,而是整数14?

[解决办法]
我vs2010上试了一下,输出是:15.000000
你用的什么编译器。
[解决办法]
C/C++ code
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。这样的计算是不会有不精确问题的。

热点排行