我写的是这段代码:
public static void main(String[] args) {
double g = 1 / 3;
System.out.printf("%.2f", g);
}
Run Code Online (Sandbox Code Playgroud)
结果是0.为什么这样,我该如何解决这个问题?
下面的函数从共享偏好,权重和高度中获取两个值,我使用它们来计算BMI,当我打印值的内容时,我得到我在sharedprefs中输入的值(这很好)但是当我运行时对它们进行除法运算,结果总是得到0 ..错误在哪里?
public int computeBMI(){
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
String Height = customSharedPreference.getString("heightpref", "");
String Weight = customSharedPreference.getString("weightpref", "");
int weight = Integer.parseInt(Weight);
int height = Integer.parseInt(Height);
Toast.makeText(CalculationsActivity.this, Height+" "+ Weight , Toast.LENGTH_LONG).show();
int bmi = weight/(height*height);
return bmi;
}
Run Code Online (Sandbox Code Playgroud) 这是一个例子:
Double d = (1/3);
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)
这将返回0,而不是0.33333 ......应该如此.
有人知道吗?
我的代码:
long totalVolume = sellVolume + buyVolume;
float sellPercent = (float)(sellVolume / totalVolume);
float buyPercent = (float)(buyVolume / totalVolume);
所有变量在第一行代码中都很长,然后我试图计算它的百分比....但 java 仅返回零...为什么会这样 - 我在类型转换中做错了什么吗
可能重复:
为什么两个整数的除法在Java中返回0.0?
我有一些非常令人困惑的问题..我想计算一些东西,经过一些调试后我看到java计算这个算术:2/4 = 0.0但它应该是0.5
2和4存储在整数变量中,结果存储在double类型中.
我清楚地错过了什么吗?
为什么在分裂时Java返回?我试过的代码是010/60
double pay_per_minute = (10/60);
Run Code Online (Sandbox Code Playgroud)
10是每小时的工资率,60是分钟.