我想得到两个整数,一个除以另一个得到小数或百分比.如何获得这两个整数的百分比或小数?(我不确定它是否正确......我可能会离开...)例如:
int correct = 25;
int questionNum = 100;
float percent = correct/questionNum *100;
Run Code Online (Sandbox Code Playgroud)
这就是我认为我能做到的,但是它不起作用......我想把十进制(如果有的话)变成100的百分比,例如在这种情况下它是%25.任何人的想法?
这是正确的代码(感谢Salvatore Previti!):
float correct = 25;
float questionNum = 100;
float percent = (correct * 100.0f) / questionNum;
Run Code Online (Sandbox Code Playgroud)
(顺便说一下,我正在用一个项目来进行测验检查程序,这就是我需要百分比或小数的原因)
Sal*_*iti 80
如果你不添加.0f
它将被视为它是一个整数,并且整数除法与浮点除法确实很多:)
float percent = (n * 100.0f) / v;
Run Code Online (Sandbox Code Playgroud)
如果您需要出这个整数,你当然可以施放float
或double
整数一次.
int percent = (int)((n * 100.0f) / v);
Run Code Online (Sandbox Code Playgroud)
如果您知道您的n值小于21474836(即(2 ^ 31/100)),则可以使用整数运算完成所有操作.
int percent = (n * 100) / v;
Run Code Online (Sandbox Code Playgroud)
如果你得到NaN是因为你做了什么,你当然不能分为零......这没有意义.
Eri*_*ric 16
两种选择:
在乘法后进行除法:
int n = 25;
int v = 100;
int percent = n * 100 / v;
Run Code Online (Sandbox Code Playgroud)
在分割之前将int
a 转换为afloat
int n = 25;
int v = 100;
float percent = n * 100f / v;
//Or:
// float percent = (float) n * 100 / v;
// float percent = n * 100 / (float) v;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
131216 次 |
最近记录: |