我面临着long int
输出结果的问题。下面是我的程序,我正在使用各种方法计算税金:1)将结果输出到int
和long
变量中。我认为代码中的所有四个结果都应该相同,但是tax3
变量中的结果输出与其他三个结果不同(小于1)。请帮助我了解原因。
#include<iostream.h>
#include<conio.h>
int main()
{
long salary;
cout << "Enter Salary: " << endl;
cin>>salary;
float tax1, tax2;
long tax3, tax4;
tax1 = salary*0.15;
tax2 = (salary*15)/100;
tax3 = salary*0.15;
tax4 = (salary*15)/100;
cout << "tax1=" << tax1 << endl;
cout << "tax2=" << tax2 << endl;
cout << "tax3=" << tax3 << endl;
cout << "tax4=" << tax4 << endl;
getch();
return(0);
}
答案 0 :(得分:0)
编译器已知两种主要的数字类型-浮点数和整数。浮点后面的IEEE-754 floating point表示32位(浮点)和64位(双精度)。在turbo C中,int仅是16位。同样,当您从float复制到int时,仅复制整数部分。即考虑以下示例:
float a=9.8;
int b=(int)a;
在上面的代码中,当您打印b时,它只会给出9。另外一条建议,如果您想更好地学习c ++,请从turbo c切换到gcc。