C 为什么我的百分比计算是12折?

C 为什么我的百分比计算是12折?,c,C,我现在在编程1。我正在创建一个程序,旨在显示教师对总购买金额的折扣(12%)的计算。当根据购买总额在屏幕上打印折扣金额时,我得出的总额不正确。代码如下: double total_b4_tax; printf("\nEnter the purchase total : "); scanf("%lf", &total_b4_tax); getchar (); if (teach_music == 'y' || 'Y') { double discount_total = tea

我现在在编程1。我正在创建一个程序,旨在显示教师对总购买金额的折扣(12%)的计算。当根据购买总额在屏幕上打印折扣金额时,我得出的总额不正确。代码如下:

double total_b4_tax;
printf("\nEnter the purchase total : ");
scanf("%lf", &total_b4_tax);
getchar ();


if (teach_music == 'y' || 'Y')
{
    double discount_total = teach_music * .12;
    printf("Total purchase                  $   %.2lf\n", total_b4_tax);
    printf("Discount total                  $   %.2lf\n", discount_total);
}

我的总折扣是14.52,而实际上122.0*.12是14.64。我如何解决这个问题

您正试图通过将字符乘以浮点来计算折扣:

double discount_total = teach_music * .12;
在此之前,请确保
teach_music
为“y”或“y”。我很好奇它是如何编译的,C是如何得出“y”或“y”是121的结论的

编辑:Harr,“Y”是ASCII 121。因此,将其与.12相乘得到14.52

不管怎样,我想

 double discount_total = total_b4_tax * .12;

更好。

请添加一个。您的代码不完整,因为它无法编译。这一行看起来也是错误的:
double-discount\u-total=teach\u-music*.12你的意思是
双倍折扣总额=总税*12
如果(teach_music==“y”| |“y”)
在C语言中不是有效的一行(是的,但它并不像你想象的那样。)@RadLexus Darn,我错过了那一行。非常感谢!现在看来很明显!