C11-1 浮点数输出

来源:互联网 发布:java web入门书籍推荐 编辑:程序博客网 时间:2024/05/18 12:03

浮点数输出

 
(100/100 分数)
题目描述

编写一个程序,输入一个浮点数和输出格式要求,按照格式要求将该浮点数输出。给定非负整数m和n,表示输出的浮点数小数点前的宽度为m,若宽度不够则在前面补0,小数点后的宽度为n,若宽度不够则在后面补0(补充说明:当n=0时,只需输出整数部分,当m,n都为0时,则输出0)。


输入描述

每个测例共 2 行,第一行为两个整数 m,n(n >= 0, m >= 0) ,第二行为一个浮点数。


输出描述

对每个测例输出的浮点数占一行,其小数点前宽度为m,小数点后宽度为n,不足时补零。



样例输入

5 312.34567892 1012.34

样例输出
00012.34512.3400000000

注释 

#include <iostream>#include <sstream>#include <iomanip>#include <string>using namespace std;int main(){    int m,n;    double num;    while(cin>>m>>n>>num){        if(m==0&&n==0)            cout<<0<<endl; else{            cout<<setw(m)<<setfill('0')<<int(num);//输出整数部分             if(n!=0){//n=0时,只需要输出整数部分                 ostringstream os;                os<<fixed<<setprecision(n+1)<<num-int(num);//第一位是0,不需要再输出,从‘.’开始就好,所以要+1                string str=os.str();                for (int i=1;i<=n+1;i++)//从1开始                    cout<<str[i];            }            cout << endl;        }    }    return 0;


0 0