我在计算中不断得到额外的0

时间:2013-10-13 06:05:06

标签: c

所以我正在尝试做一个工资预测项目而且我只是坚持一件事,我正在使用数字,它给了我额外的0位小数我不想要的地方..

void calc(float *salary, float *rate, float *raise, float *newsalary)
{
    *raise = *salary*(*rate);
    *newsalary = (*salary)+(*raise);
}
void rateofsalary(float *salary, float *rate)//change this function into a return 
{
    if(*salary>=0 && *salary<=30000)
        *rate = 7.0;
    else 
        if(*salary>=30000 && *salary<=40000)
            *rate = 5.5;
        else 
            if(*salary>=40000)
                *rate = 4.0;

}

输出如下:

> Please enter your salary: 25000 
>The rate is: 7.00
>|     | Salary |Rate | Raise | New Salary |
>|     | 25000.00  | 7.00  | 175000.00 | 200000.00  |
> Press any key to continue . . .

但我想要的是:

> Please enter your salary: 25000 
The rate is: 7.00
>|     | Salary |Rate | Raise | New Salary |
 |     | 25000.00  | 7.00  | 1,750.00 | 26,750.00   
> Press any key to continue . . .

为什么我会得到额外的0?

2 个答案:

答案 0 :(得分:2)

我猜,你得到的是正确答案。

你的工资是25000,费率是7.乘以175000这是你的加薪。

答案 1 :(得分:2)

在RateOfSalary函数结束时,添加:

*rate /= 100;