小数的处理

本文通过两个具体实例,详细介绍了C++及C语言中小数表示的方法及技巧,包括如何设置精度、使用何种语法达到指定的显示效果等。通过实际代码演示了如何实现数值计算和输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目1(此题用c++的小数表示方式显示):

如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。

答案:2.506184

代码:

#include<iostream>  
#include<iomanip>  
#include<cmath>  
using namespace std;  
  
int main()  
{  
    long double a=2.0,b=3.0,mid=1,aa,bb,cc=1.0;   //a-----mid-----b 。 aa, bb, cc存的是与 10.0的差值 
    while(fabs(cc)>1e-7)  //答案要精确到 6 位小数,即误差要小于 1e-7 
    {  
        mid=(a+b)/2.0;   //二分的 mid 
        aa=pow(a,a)-10.0;
		bb=pow(b,b)-10.0;
		cc=pow(mid,mid)-10.0;  
        if(aa*cc < 0)   //如果 aa * cc < 0 说明 aa是 < 0的 ,从而说明 aa < 10.0,即答案范围在 a~mid 中
			b=mid;  
        else if (cc*bb < 0) //如果 cc * bb < 0 说明 cc是 < 0的 ,从而说明 cc < 10.0,答案范围在 mid~b 中 
			a=mid;  
        cc=pow(mid,mid)-10.0;  
    }  
    cout<<fixed<<setprecision(6)<<mid<<endl;  //保留 6 位小数 
}  

c++小数表示方式总结:

1.要有头文件#include <iomanip>

2.题目要求精确到6位小数,那么误差要小于1e-7

3.显示小数时:cout<<fixed<<setprecision(6)<<endl;  //这个是显示保留6为小数的语句



题目2(此题用c的小数表示方式表示):

无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。


请填写该浮点数,不能填写任何多余的内容。

答案:0.58198


#include<stdio.h>
double fenshu(double n)
{
    if(n==100)
        return n;               
    return n/(n+fenshu(n+1));
 } 
  
int main()
{
    double ans=fenshu(1.0);
    printf("%.5lf \n",ans);
    return 0;
 }

c小数表示方式总结:

printf("%.5f  \n", ans); //里面的 .5表示保留5位小数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值