简体   繁体   English

通过 scanf() 获取输入后,Double 数据类型将垃圾值设为 output

[英]Double data type giving garbage value as output after taking input through scanf()

main()
{   
    double B_Sal, DR_Al,H_RA, Total_Sal;
    printf("Enter Your Basic Salary ");
    scanf("%f",&B_Sal);
    printf("the amount entered is %f \n",B_Sal);
    DR_Al=0.4*B_Sal;
    H_RA=0.2* B_Sal;
    Total_Sal=B_Sal+ DR_Al+ H_RA;
    printf("The Total Salary Is %f",Total_Sal);
    
}

Whatever input is given it just gives output as negative garbage value .无论给出什么输入,它只会将 output 作为负垃圾值 This same code when data type is change to float works fine.当数据类型更改为浮点数时,相同的代码可以正常工作。

To get double as input the specifier is %lf,要获得 double 作为输入,说明符是 %lf,

    #include <stdio.h>
#include<string.h>
int main()
{
    double B_Sal, DR_Al,H_RA, Total_Sal;
    printf("Enter Your Basic Salary ");
    scanf("%lf",&B_Sal);
    printf("the amount entered is %f \n",B_Sal);
    DR_Al=0.4*B_Sal;
    H_RA=0.2* B_Sal;
    Total_Sal=B_Sal+ DR_Al+ H_RA;
    printf("The Total Salary Is %f",Total_Sal);
}

Output: Output:
在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM