Как правило, округление выполняется путем масштабирования: round(num / p) * p
/**
* MidpointRounding away from zero ('arithmetic' rounding)
* Uses a half-epsilon for correction. (This offsets IEEE-754
* half-to-even rounding that was applied at the edge cases).
*/
double RoundCorrect(double num, int precision) {
double c = 0.5 * EPSILON * num;
// double p = Math.pow(10, precision); //slow
double p = 1; while (precision--> 0) p *= 10;
if (num < 0)
p *= -1;
return Math.round((num + c) * p) / p;
}
// testing edge cases
RoundCorrect(1.005, 2); // 1.01 correct
RoundCorrect(2.175, 2); // 2.18 correct
RoundCorrect(5.015, 2); // 5.02 correct
RoundCorrect(-1.005, 2); // -1.01 correct
RoundCorrect(-2.175, 2); // -2.18 correct
RoundCorrect(-5.015, 2); // -5.02 correct
Библиотека, которую вы используете, была скомпилирована с помощью Java 6
. Ваш компилятор - это Java 5, поэтому он не понимает этот формат.
Чтобы исправить это, вы должны получить 1.5 версии библиотеки или обновить ваш компилятор до 1.6. Я предлагаю позже.
Per http://www.jnode.org/node/2140 ...
Представлено Стивеном Кроули в пятницу, 11 / 30/2007 - 07:15.
Я подозреваю, что вы смешиваете код, скомпилированный с разными версиями Java. Class file version 50.0 используется Java 6.0, а 49.0 используется Java 5.0.
Попробуйте сделать «сборку чистой», чтобы избавиться от всех существующих файлов классов, за которой следует регулярная сборка.
JNode разрабатывается только с использованием Java 6.0. В прошлый раз, когда я пытался, он не строился с использованием Java 5.0 (aka 1.5). (Это проблема с программой, которая создает загрузочный образ JNode.) Blockquote>
Попробуйте изменить конструктор в Eclipse. Если вы используете 3.4, это Project - Properties - Java Compiler - Включить специальные настройки проекта - Уровень соответствия компилятора = 1.6 . Вам также потребуется установить JRE 1.6.
mvn clean
, я помог мне узнать файл mvn.bat
, который в моем случае устанавливал свою собственную версию JAVA_HOME
.
– another
23 January 2018 в 09:47
Это означает, что вы скомпилировали этот класс с Java 6 и пытаетесь выполнить с помощью Java 5.
Решение:
Если вы используете ant, выполните ниже шаги по проекту root
Если вы используете eclipse, просто очистите рабочую область (удалите файлы классов, которые были скомпилирован с Java6) и снова построить
Проверьте свой путь к классам в eclipse и убедитесь, что его тот же путь к классу, который вы компилируете в командной строке, также проверьте, что ваша библиотека импортирует
это может быть в том, что в IDE вы указываете на последнюю версию JDK, но когда вы создаете свою программу за пределами IDE (возможно, с maven), ваша java_home является более старой версией, чем в вашей IDE.