C语言中的除法
Division in C language
大家好希望你们一切顺利我是C语言的新手,我只需要问一个基本的问题就是当我在C中除数时像这样:
#include<stdio.h>
main()
{
float a = 15/4;
printf("%.2f", a);
}
除法发生了,但答案以 3.00 的形式出现(这是不正确的,它没有计算余数)
但是当我这样编程时:
#include<stdio.h>
main()
{
float a = 15;
float b = 4;
float res = a/b;
printf("%.2f", res);
}
这个方法给了我正确的答案。所以我想问一下差异背后的原因 b/w 这两个程序为什么第一种方法不起作用,为什么第二种方法起作用?
在这个表达式中
15/4
这两个操作数都是整数类型(更准确地说是 int
类型)。所以进行整数运算。
如果至少有一个操作数是浮点类型(float 或 double),例如
15/4.0
或
15/4.0f
则结果将是一个浮点数(在类型double
的第一个表达式和类型float
的第二个表达式中)
并且在这个表达式中
a/b
两个操作数都是浮点类型(类型float
)。所以结果也是一个浮点数。
当您将变量声明为浮动时,您会自动转换他从等式中获得的值。
例如:
Float a = 2/4 这就像写 float a = float(equation)。
小心,
奥里
大家好希望你们一切顺利我是C语言的新手,我只需要问一个基本的问题就是当我在C中除数时像这样:
#include<stdio.h>
main()
{
float a = 15/4;
printf("%.2f", a);
}
除法发生了,但答案以 3.00 的形式出现(这是不正确的,它没有计算余数) 但是当我这样编程时:
#include<stdio.h>
main()
{
float a = 15;
float b = 4;
float res = a/b;
printf("%.2f", res);
}
这个方法给了我正确的答案。所以我想问一下差异背后的原因 b/w 这两个程序为什么第一种方法不起作用,为什么第二种方法起作用?
在这个表达式中
15/4
这两个操作数都是整数类型(更准确地说是 int
类型)。所以进行整数运算。
如果至少有一个操作数是浮点类型(float 或 double),例如
15/4.0
或
15/4.0f
则结果将是一个浮点数(在类型double
的第一个表达式和类型float
的第二个表达式中)
并且在这个表达式中
a/b
两个操作数都是浮点类型(类型float
)。所以结果也是一个浮点数。
当您将变量声明为浮动时,您会自动转换他从等式中获得的值。 例如: Float a = 2/4 这就像写 float a = float(equation)。 小心, 奥里