Вообще-то такая запись (-tnat) допускается в getopt, которым наверняка пользуется iptables, если короткий параметр требует значение, то разделитель можно опускать.
Несомненно, Java слишком сложна для такой тривиальной вещи, как машинное обучение. Но мне, как человеку, который программирует на Java, но с питоном незнакомым, всё же интереснее было бы читать про тему с примерами на знакомом мне ЯП.
"The Java programming language requires that floating-point arithmetic behave as if every floating-point operator rounded its floating-point result to the result precision. Inexact results must be rounded to the representable value nearest to the infinitely precise result; if the two nearest representable values are equally near, the one with its least significant bit zero is chosen. This is the IEEE 754 standard's default rounding mode known as round to nearest."
Технически же rint реализован так, что берётся значение double, которое уже не в состоянии хранить дробную часть оно прибавляется к значению аргумента. Тут и происходит округление по вышеприведённой спеке. См. grepcode.com/file/repository.grepcode.com/java/roo...
А ещё String вы создаёте без указания кодировки, что неправильно по сути, так как будет использована системная кодировка и это непортабельно. К тому же чтение из файла реализовано так, что нет гарантий, что вообще чего-либо прочтётся ;)
Упс. Отзываю вопрос. Они втихаря всё-таки обновили. Раньше у них было Java и Java7 в списке, что означало Java 6 и Java 7 соответственно. А теперь это у них Java 8 и Java 7.
Тонкие клиенты с RMI уже прошлый век, лучше тогда просто JSON взять для транспорта, чтобы потом перепиливать под WEB было проще и для красоты вот эту библиотеку на клиента https://github.com/Netflix/feign. А загружать файлы через RMI это плохое решение.
Разница между @Service и @Component лишь в названии, суть та же. А вот кстати при помощи @Repository вы уже немного коснулись мира AOP. Здесь спрингом создаётся прокси-объект, который перехватывает вызовы методов бина для применения AOP магии. За обработку данной конкретной аннотации отвечает org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor из spring-tx. Но там использован старый интерфейсный подход с постпроцессором, а сейчас в тренде aspectj. В общем не берите пока в голову ;)