Страницы

Поиск по вопросам

четверг, 28 ноября 2019 г.

Модификатор strictfp

#java


Для чего нужен данный модификатор? И с чем его можно использовать?
    


Ответы

Ответ 1



strictfp - это модификатор, введенный в java 1.2, ограничивающий точность вычислений с float и double по стандарту IEEE. Для чего это нужно? Чтобы обеспечить переносимость. Дело в том, что JVM использует всю возможную точность процессора, а она на разных системах разная, поэтому и результат может получиться разный.Данный модификатор используется в программах требующих точность вычислений превышающих IEEE (обычно, что-нибудь связное с наукой). strictfp class StrictFPClass { double num1 = 10e+102; double num2 = 6e+08; double calculate() { return num1 + num2; } } strictfp interface StrictFPInterface { double calculate(); strictfp double compute(); // compile error } class StrictFPMethod { strictfp double computeTotal(double x, double y) { return x + y; } } В классе он обозначает, что все методы будут на всех системах возвращать вещественные числа с одинаковой точностью. 0.112 и 0.113 Если эти числа сравнивать с точность до сотых, то они будут одинаковы. Пример, как точность влияет на вычисления. Его можно не использовать т.к. почти все компиляторы современные уже его за нас подставляют (где-то читал такое в мануале) Дополнил.

Ответ 2



Модификатор strictfp применяется к классам, интерфейсам и методам, и гарантирует соответствие всех операций на числах с плавающей точкой стандарту IEEE 754. При использовании данного модификатора Вы получите одинаковое поведение в ходе манипуляций с числами с плавающей точкой на всех платформах. Так же про FP-strict можно почитать в JLS.

Комментариев нет:

Отправить комментарий