03 小数单元重难点

这篇文章描述了一个C++程序,用于计算指定范围内(如3.3到3.6)的两位小数数量,并介绍了如何使用四舍五入法则确定保留位后的极值。程序包括输入起始和终止数字以及要查找的小数位数。
摘要由CSDN通过智能技术生成

范围内小数个数

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std; 
int main(){
    int n;
    double x,y; 
    cout << "请输入起始数字:";
    cin >> x;
    cout << "请输入终止数字:";
    cin >> y;
    cout << "请输入查找位数:";
    cin >> n;
    cout << "在" << x << "到" << y << "之间有"; 
    x+=pow(10,0-n);
    y-=pow(10,0-n);
    cout << pow(10,n)*(y-x+1) << "个" << n << "位小数"; 
    return 0;
}

3.3到3.6之间有多少个两位小数?

根据尾-头+1的数量原则,36-33+1就可以直接求出小数的个数。


四舍五入极值

#include <iostream>
using namespace std;
int x,y;
string d,d1;
string maxd(string dd){
    string d1=dd;
    d1+='4';
    for (int i=1;i<=x-y-1;i++)
        d1+='9';
    return d1;
}
string mind(string ddd){
    string d1=ddd;
    if (d1[d1.length()-1]!='0'){
        d1[d1.length()-1]-=1;
    }else{
        int p=d1.length()-1;
        while(d1[p]=='0' || d1[p]=='.'){
            p--;
            if (d1[p]=='.')
                continue;
            if (d1[p+1]!='.')
                d1[p+1]='9';
            else
                d1[p+2]='9'; 
        }d1[p]-=1;
    }d1+='5';
    for (int i=1;i<=x-y-1;i++)
        d1+='0';
    return d1;
} 
int main(){
    cout << "How many decimal places are there in the decimal part of a primary number:";
    cin >> x;
    cout << "How many digits of the decimal part of the retained decimal:";
    cin >> y;
    cout << "The decimal number retained is:";
    cin >> d;
    cout << d << "The maximum value before retention is:" << maxd(d) << endl;
    cout << d << "The minimum value before retention is:" << mind(d) << endl;
} 

四舍五入法则:
保留位往后一位是0、1、2、3、4直接舍去。
保留位往后一位是5、6、7、8、9舍去,在保留位上加一。


只要在最大值后面狂加4999···(有几位小数加到第几位),在最小值减去该小数的计数单位后狂加5000···(有几位小数加到第几位),就可以求出四舍五入的极值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值