关于C++保留两位小数,请问为什么p1第九行除以2.0?

P1题目是求三角形的面积并保留两位小数

img


P2是另一个题目

img


P3是p2的答案,同时这里为什么也除以2.0?

img

因为 a h 都是整数,如果/2(即,除以一个整数),那么结果是整除,而不是浮点除法。而除数或者被除数有一个是小数,则强制为浮点除法。

因为算数转换,如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换。

long double
double
float
unsigned long int
long int
unsigned int
int

从下至上,依次升高
如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。