提示计算 - 将数字更改为十进制represntation

时间:2017-02-26 21:59:15

标签: c input calculation

除了函数“tipConvert(tip)”之外,这里的所有内容都按照我想要的方式工作。

我希望它将一个数字(例如15)更改为.15,它将是百分比的十进制表示。

#include <stdio.h>

float tipConvert(int tip);

int main()
{   
    char value;
    int intValue tip;
    float bill, result;

    intValue = 1;

    while(intValue == 1)
    {
        printf("Would you like to calculate a tip: y or n?\n");
        scanf("%s", &value);
        if(value == 'y')
        {
            printf("Enter the bill amount:\n");
            scanf("%f", &bill);
            printf("Enter the tip amount as an integer:\n");
            scanf("%i", &tip);
            result = tipConvert(tip)*bill;
            printf("Tip for %.2f is %.2f\n", bill,result);
         }
         else if(value == 'n')
         {
             printf("Thank you for using Tip Calculator.");
             break;
         }
         else
             printf("Please select y or n.\n");

     }
     return 0;
 }

float tipConvert(int tip)
{
    return tip / 100;
}

1 个答案:

答案 0 :(得分:1)

问题是,int不能存储任何十进制数,并且在调用tip / 100时,编译器将其视为整数除法并返回一个int(在您的示例中为0)并将其转换为以后浮动。

告诉编译器使用浮点除法的最简单方法是使用100.0f除以浮点文字而不是int文字。这应该解决分裂问题 或者,您可以在之前将尖端转为浮动。