首页 > 解决方案 > 将一个 int 乘以一个 int 得到一个浮点数返回 0 语言是 C

问题描述

lotacao_abs = (viagens[j].lotacao / 100) * navios[i].capacidade;

lotacao_abs是一个浮点数,viagens[j].lotacaoint一个结构(是的,它有我检查过的正确值),navios[i].capacidade也是一个int(也有我检查过的正确值)。

发生的事情是 的值lotacao_abs总是0。这部分代码的想法是给我绝对值而不是百分比,viajens[j].lotacao有百分比并且navios[j].capacidade有船的最大容量,假设百分比是 68%,最大容量是34,000,那么lotacao_abs应该是23,120,但它反而是0

标签: c

解决方案


子表达式viagens[j].lotacao/100正在执行整数除法。因此,如果viajens[j].lotacao小于 100,则结果将为 0。

其中一个参数必须具有浮点类型才能执行浮点除法。最简单的方法是使用100.0which 是浮点常量而不是100整数常量。

lotacao_abs=(viagens[j].lotacao/100.0) * navios[i].capacidade;

推荐阅读