回 帖 发 新 帖 刷新版面

主题:菜鸟求教

#include<iostream.h>
int main()
{
    float x =4.12345678901230,z=2;
    int a =6,b=6.882;
    double r=3.2345678901234567;
    

    cout<<"\nx的值是:"<<x<<"\nz的值是:"<<z<<"\na的值是:"<<a
        <<"\nb的值是:"<<b<<"\nr的值是:"<<r<<endl;
    return 0;
}
如果我想把上面的值完全的表示出来
比如x后面的小数全表示出来 书上说float能表示小数部分6位,为什么我程序运行后只能看到5位?
还有就是想把x全部表示出double)x,来用数据转化我用了x=(long 书上说能保留19位小数,为什么运行了还是和原来一样.这是道作业题,求教 谢谢

回复列表 (共2个回复)

沙发

x赋值的时候已经截取了,所以使用(double)x,是不会有变化的。

板凳

/***************************************************
       data:  2008/11/13
      email:  dingqian12345@126.com
explanation: %.mf   m即为小数点位数 
***************************************************/
#include <stdio.h> 
void main()
{
float pi=3.1415926535897932384626433832795;
printf("%.2f  %.3f  %.15f\d",pi,pi,pi);
}

C++程序 
#include <iostream.h> 
#include <iomanip.h> 
void main()
{
    double pi=3.1415926535897932384626433832795; 
    cout <<setprecision(15) <<pi; //括号内可以指定位数
}


输出的时候发现前者虽然位数对但是结果不正确,后者是正确的

我来回复

您尚未登录,请登录后再回复。点此登录或注册