я получил значения широты и долготы в шестнадцатеричном:Преобразование шестиугольника в десятичный (Lat/Lon)?
0AF6CF83
D89B2933
преобразуя их в десятичную я получил ...
183947139
-660920013
Проблема заключается в том, как получить эти десятичные в следующем формате с использованием Java ?
18.3947139
-66.0920013
Это, как я на самом деле преобразования Hex в десятичном:
public static int hex2Decimal(String s) {
long longValue = Long.parseLong(s, 16);
int intValue = (int)longValue;
return intValue;
}
Не умножайте с 1.0e-7, вместо этого разделите на 1.0e7. Это более точно. –
@RolandIllig Значение 'int' имеет менее 10 цифр точности, поэтому результат этого вычисления может быть точным только до 9-10 цифр. 'double' имеет 15-17 цифр точности, поэтому любая неточность' 1e-7' бессмысленна. – Andreas
Принято, но разделение имеет то преимущество, что вы можете просто использовать Double.toString и получить ожидаемый результат, вместо того, чтобы использовать формат, например '% .7f'. –