В другом упражнении Брюса Экелса вычисление скорости, v = s / t
где s и t - целые числа. Как мне сделать так, чтобы подразделение проворачивало поплавок?
class CalcV {
float v;
float calcV(int s, int t) {
v = s / t;
return v;
} //end calcV
}
public class PassObject {
public static void main (String[] args ) {
int distance;
distance = 4;
int t;
t = 3;
float outV;
CalcV v = new CalcV();
outV = v.calcV(distance, t);
System.out.println("velocity : " + outV);
} //end main
}//end class
Ответы:
Просто сначала бросьте один из двух операндов.
Актерский состав имеет более высокий приоритет, чем разделение, что происходит до разделения.
Другой операнд будет автоматически автоматически преобразован компилятором в число с плавающей точкой, поскольку в правилах сказано, что если любой операнд имеет тип с плавающей запятой, то операция будет операцией с плавающей запятой, даже если другой операнд является целым. Спецификация языка Java, §4.2.4 и §15.17
источник
Пытаться:
Приведение целых чисел к числам с плавающей запятой позволит выполнить деление с плавающей запятой.
Вы действительно должны только разыграть одну, хотя.
источник
Приведите одно из целых чисел к числу с плавающей точкой, чтобы заставить операцию выполняться с помощью математики с плавающей запятой. В противном случае целочисленная математика всегда предпочтительнее. Так:
источник
Чтобы уменьшить влияние на читабельность кода, я бы предложил:
источник
Вы можете бросить числитель или знаменатель, чтобы плавать ...
Операции int обычно возвращают int, поэтому вы должны изменить одно из операндов.
источник
Вы можете разыграть даже один из них, но для согласованности вы можете явно разыграть оба, так что должно работать что-то вроде v = (float) s / (float) t.
источник
Стандарт JLS
JLS 7 15.17.2. Оператор отдела / говорит:
Вот почему
1/2
не дает поплавок.(float)1/2
Достаточно конвертировать любой из них в число с плавающей точкой, потому что 15.17. Мультипликативные операторы говорят:и 5.6.2. Двоичное числовое продвижение говорит:
источник
Приведите одно из целых чисел / оба целых числа к числу с плавающей запятой, чтобы заставить операцию выполняться с помощью математической операции с плавающей запятой. В противном случае целочисленное Math всегда является предпочтительным. Так:
источник
Попробуй это:
источник