firewater 发表于 2014-7-29 09:37:03

关于浮点型数据的

本帖最后由 firewater 于 2014-7-29 09:50 编辑

#include "stdio.h"
void main (){
      printf("%f\n",1.0/3*3);                   printf("%f\n",3/2);   
      printf("%f\n",1/3*3);             }

运行后的结果:1.000000                        
                         0.000000                     
                        0.000000
                   这是为什么


换个代码#include "stdio.h"            
                     void main ()                         {         
                                 double a,b,c;         
                                     a=1.0/3*3;         
                                       b=3/2;         
                                     c=1/3*3;         
                                       printf("%f\n",a);         
                                    printf("%f\n",b);         
                                 printf("%f\n",c);   
                              }
                结果为:1.000000
                              1.000000            
                              0.000000





firewater 发表于 2014-7-29 09:37:38

我排好了板啊,怎么乱了

oggplay 发表于 2014-7-29 10:14:39


#include <stdio.h>
   
    int main( ){
       double a,b,c;         
       a=(1.6/7.0)*9.0;
       b=3.0/2.0;         
       c=(1.0/3.0)*3.0;
       printf("a=%lf b=%lf c=%lf\n",a,b,c);
       return 0;
    }


      
[\b]

超级无敌侠客3 发表于 2014-7-29 11:25:45

额,
#include "stdio.h"
void main ()
{
printf("%f\n",1.0/3*3);浮点型跟整型运算结果应该是浮点型
printf("%f\n",3/2);   整型跟整型运算结果是整型(同下)
printf("%f\n",1/3*3);             }

运行后的结果:1.000000                        
                         0.000000                     
                        0.000000
至于下面那个
#include "stdio.h"            
void main ()
{         
double a,b,c;         
         a=1.0/3*3;         
            b=3/2;    你这里虽然声明是浮点型,但计算结果是整型,而且结果小于1,所以b被赋值为零,同下   
          c=1/3*3;         
         printf("%f\n",a);         
            printf("%f\n",b);         
            printf("%f\n",c);   
                              }
                结果为:1.000000
                              1.000000            
                              0.000000

firewater 发表于 2014-7-29 18:23:39

本帖最后由 firewater 于 2014-7-29 18:29 编辑

超级无敌侠客3 发表于 2014-7-29 11:25
额,
#include "stdio.h"
void main ()

那声明了变量不是没用,%f是以浮点型输出啊,如果我改成我把数字全改成浮点型,无论是整型还是浮点型都可输出正确答案吧

firewater 发表于 2014-7-29 18:33:55

超级无敌侠客3 发表于 2014-7-29 11:25
额,
#include "stdio.h"
void main ()


应该是c值被赋为0吧

『浴火凤凰』 发表于 2014-7-29 20:52:38

因为数据类型不对。。:lol:

firewater 发表于 2014-7-30 06:33:11

『浴火凤凰』 发表于 2014-7-29 20:52
因为数据类型不对。。

我还没学习下一章呢,昨天看了一下,书上有介绍
页: [1]
查看完整版本: 关于浮点型数据的