在C ++中的float数据类型中获取价值

时间:2018-12-21 19:49:31

标签: c++

我将一个小数除以一个大数。基本上,它是一个代码,用于显示cpu的使用和浪费。并且它正在计算其利用率。但是当我除以某点而不是某个值时,结果始终为零。 即使我正在使用浮点数,但它不能解决m问题。 我想得到CPU利用率和CPU浪费的答案

#include <conio.h>
#include <iostream>
using namespace std;
main()
{
    int totalmonotime=0;
    int totalutilization=0;
    int totalwastage=0;
    int tproc=0;
    int dump=0;
    double mono_u=0;
    double mono_w=0;

    cout<<"Enter Number of Process"<<"\n";      
    cin>>dump;

    if(dump>=1)
    {
        tproc=dump;
    }else
        cout<<"wrong input"<<"\n";


    int u[tproc];
    int w[tproc];
    for(int i =1;i<=tproc;i++)
    {
        cout<<"Enter "<<i<<" process's Utiizaton"<<"\n";
        cin>>u[i];
        cout<<"Enter "<<i<<" process's Wastage"<<"\n";
        cin>>w[i];
    }



    cout<<"Mono Programing"<<"\n";  
    for(int i=1;i<=tproc;i++)
    {
        for(int j=1;j<=u[i];j++)
        {
            cout<<"=";
        }
        for(int j=1;j<=w[i];j++)
        {
            cout<<"+";

        }
    }

    cout<<"\n";


    int x=0;
    cout<<"\n"<<"Multi Programing"<<"\n";
    for(int i=1;i<=tproc;i++)
    {
        for(int j=1;j<=u[i];j++)
        {
            cout<<"=";

        }
        for(int j=1;j<=w[i];j++)
        {
            cout<<"+";
        }
        cout<<"\n";


        for(int k=1;k<=u[i]+x;k++)
        {
            cout<<" ";
        }
        x=x+u[i];

    }

    for(int d=1;d<=tproc;d++)
    {

    totalwastage=totalwastage+w[d];
    totalutilization=totalutilization+u[d];

    }
    cout<<"\n"<<"total wastage = "<<totalwastage<<"\n";
    cout<<"total utilization = "<<totalutilization<<"\n";
    totalmonotime=totalwastage+totalutilization;
    cout<<"total time for mono programing is "<<totalmonotime<<"\n";
    cout<<"total time for multi programing"<<"\n";
    mono_u=(totalutilization/totalmonotime)*100;
    cout<<"\n"<<"CPU  utilization for mono programing ="<<mono_u<<"\n";
    mono_w=(totalwastage/totalmonotime)*100;
    cout<<"CPU  wastage for mono programing ="<<mono_w;
}

`

1 个答案:

答案 0 :(得分:4)

您的除法是整数除法: totalutilization/totalmonotime ...您可以将其更改为float以便以float样式进行划分=> (double)totalutilization/(double)totalmonotime(确实只需要进行一次强制转换,但这可以使您的意图更加清晰)

还知道,如果将小数乘以1000左右,则可能会得到更精确的答案(尽管相差1000倍)

相关问题