与数学相比,计算机中的商和余数计算是否有所不同[重复]

class FIRST
{
    public static void main()
    {
       float f1 = 8/10;
       System.out.println(f1);

    }
}
output: 0.0 in case of f1 type float
output: 0 in case of f1 type int
but when I am doing this on a calculator , the answer is coming  0.8
I am confused.Is there quotient and remainder calculation different in computer as compare with math.

但是当我使用在线计算器做8/10时,它给出了余数8和商0.online计算器给出了商和余数的正确答案。

评论
pullam
pullam

您正在执行整数数学运算,因此8/10将为0,因为它是整数并且会删除分数。然后,它将0分配给浮点数。因此,添加.f(用于float)并执行以下操作:

float a = 8/10.f;

或双

double a = 8/10.;

如果要划分两个int变量并分配给浮点类型,则需要将一个强制类型转换为该类型。

int n = 8;
int d = 10;
double a = (double)n/d;
// or
double a = n/(double)d;


点赞
评论