Я делаюПолучение правильного десятичного числа в Java?
double x = distance/maxRange;
И хочу й равный 1/3, например, когда расстояние = 10 и maxRange = 30 вместо 0.
Как я получил о том, что правильно отформатированных ?
Спасибо.
Я делаюПолучение правильного десятичного числа в Java?
double x = distance/maxRange;
И хочу й равный 1/3, например, когда расстояние = 10 и maxRange = 30 вместо 0.
Как я получил о том, что правильно отформатированных ?
Спасибо.
double x = (double) 1/3;
System.out.println(x); // result print 0.3333333333333333
Вы должны преобразовать свой расчет в два раза, иначе вы получите 0.
Предполагая, что distance
и maxRange
являются Интс, деление всегда будет приводить к 0
. То, что вы должны сделать это превратить один из них в double
, чтобы заставить его делать деление с плавающей точкой:
double x = ((double) distance)/maxRange;
двойной: тип двойной данные двойной точности 64-битная IEEE 754 с плавающей точкой ,
double z = (double) 1/3;
System.out.println("Result Using Double = " + z);
/*
Result Using Double = 0.3333333333333333
*/
двойной имеет 53-битную точность увидеть только в https://en.wikipedia.org/wiki/Double-precision_floating-point_format. Так что, если вам нужно больше, чем 53-битную точность лучший вариант для этого используется BigDecimal
Для примера:
BigDecimal distance = new BigDecimal("1");
BigDecimal maxRange = new BigDecimal("3");
BigDecimal x = distance.divide(maxRange, /*precision-scale*/ 100, RoundingMode.HALF_UP);
System.out.println("Result Using BigDecimal=" + x);
/*
Result Using BigDecimal=0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
*/
http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
'double' не имеет 64-битной точности, всего 53 бит. И нужен только «1.0/3' или« 1/3.0 », который чище и короче, чем литье –
Вы имеете в виду конкретно '1/3' в консоли, а не' 0,33333 ... ' –
' 'и' maxRange' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' – MadProgrammer
Либо или будет работать 1/3 или 0,33333 Я должен принять это число и несколько его, чтобы что-то еще было возвращено. Я использую двойники. – Carson