Tag: java с

Что случилось с этим делением?

Вот код: class testsum { public static void main(String arg[]) { double sum=0; double fraction; fraction=-1/9; System.out.println(“fraction: “+fraction); fraction=-1; fraction=fraction/9; System.out.println(“fraction: “+fraction); } } выходы равны 0 а затем -0.11111111 почему был первый выход 0 а не -0.11111111111 ?

Что означают F и D в конце числовых литералов?

Я видел некоторые из этих символов, но я не могу найти ничего странного в этом, double d = 5D; float f = 3.0F; Что означает D и F позади 5 точно означает?

Проблемы с двойной суммой Java

Я хотел бы знать, почему я получаю эту ошибку. (это журнал отображения отладки Eclipse) var (double) 2.8 tot.getIva() (java.lang.Double) 0.17 var+tot.get() (double) 2.9699999999999998 Я не могу понять, почему я не получил просто 2.97!

Следует ли синхронизировать метод запуска? Почему или почему нет?

Я всегда думал, что синхронизация метода run в classе java, который реализует Runnable, избыточна. Я пытаюсь понять, почему люди делают это: public class ThreadedClass implements Runnable{ //other stuff public synchronized void run(){ while(true) //do some stuff in a thread } } } Кажется излишним и ненужным, так как они получают блокировку объекта для другого streamа. […]

Как временные среды Java, нацеленные на процессоры pre-SSE2, реализуют базовые операции с плавающей запятой?

Как работает Java-среда выполнения, ориентированная на процессор Intel без SSE2, с демонами с плавающей запятой, когда установлен strictfp ? Даже когда 387 FPU установлен для 53-битной точности, он сохраняет диапазон негабаритных экспонентов, который: силы для обнаружения переполнения / переполнения при каждом промежуточном результате и затрудняет избежание двойного округления денормалов. Страtagsи include в себя повторное вычисление […]

Как получить десятичную часть поплавка?

Мне нужно извлечь десятичную часть числа с плавающей точкой, но я получаю странные результаты: float n = 22.65f; // I want x = 0.65f, but… x = n % 1; // x = 0.6499996 x = n – Math.floor(n); // x = 0.6499996185302734 x = n – (int)n; // x = 0.6499996 Почему это происходит? […]

Почему преобразование из float в double изменяет значение?

Я пытался выяснить причину, но я не мог. Кто-нибудь может мне помочь? Посмотрите на следующий пример. float f; f = 125.32f; System.out.println(“value of f = ” + f); double d = (double) 125.32f; System.out.println(“value of d = ” + d); Это результат: значение f = 125,32 значение d = 125.31999969482422

Составляют ли какие-либо JIT-компиляторы JVM код, который использует векторизованные инструкции с плавающей запятой?

Скажем, узким местом моей Java-программы действительно являются некоторые жесткие петли, чтобы вычислить кучу векторных точечных продуктов. Да, я профилировал, да, это узкое место, да, это важно, да, это именно то, как алгоритм, да, я запустил Proguard для оптимизации байтового кода и т. Д. Работа – это, по сути, точечные продукты. Как и в случае, у […]

почему f помещается после значений float?

Я не знаю, почему f или F размещены после значений float на Java или других языках? например, float fVariable = 12.3f; любые функции, отличные от указания того, что это значение поплавка?

Почему мы не можем использовать ‘==’ для сравнения двух чисел с плавающей запятой или двойных чисел

Я читаю «Эффективный java» Джошуа Блоха и в пункте 8: соблюдайте общий контракт при переопределении равных , это утверждение написано для полей float используйте метод Float.compare; и для двойных полей используйте Double.compare. Специальная обработка плавающих и двойных полей необходима из-за существования Float.NaN, -0.0f и аналогичных двойных констант; Может кто-нибудь объяснить мне пример, почему мы не […]

Давайте будем гением компьютера.