我正在尝试计算两个整数,喜欢和不喜欢之间的比率。它似乎返回0而不是我应该在我的计算器中得到的数字。我做错了什么?
int likes = 200;
int dislikes = 100;
float ratio = (likes / 2000) * ((likes / likes) + dislikes) * 100;
答案 0 :(得分:2)
整数不能代表分数,这就是它们整数的原因。使用整数进行除法会丢弃余数,因此如果您尝试将较小的整数除以较大的整数,则得到0.您正在尝试将它们转换为浮点数时处于正确的轨道上,但您当前的实现会对转换前的整数值。在进行计算之前,您需要将likes
和dislikes
转换为float
值。
答案 1 :(得分:0)
变化:
int likes = 200;
int dislikes = 100;
float ratio = (likes / 2000) * ((likes / likes) + dislikes) * 100;
为:
float likes = 200;
float dislikes = 100;
float ratio = (likes / 2000) * ((likes / likes) + dislikes) * 100;
或在像这样进行分割之前施放它
int likes = 200;
int dislikes = 100;
float ratio = ((float)likes / 2000) * (((float)likes / likes) + dislikes) * 100;
更新:在评论
中指出固定拼写错误