Strictfp

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

strictfp є ключовим словом у мові програмування Java, яке обмежує обчислення чисел із плаваючою комою для забезпечення мобільності. Він був введений у Java починаючи із Java Virtual Machine (JVM) версії 1.2.

Основи[ред.ред. код]

Стандарт IEEE 754, визначає стандартний метод для обчислень чисел із плаваючою комою та зберігання значення із плаваючою комою із простою (32-біт, у Java типі float) або подвійною (64-біт, у Java типі double) точністю . Справа в тому, що JVM використовує всю можливу точність процесора, а вона на різних системах різна, тому і результат може вийти різний. Наприклад, коли ви порівнюєте два double 0,555 і 0,556 із точністю двох знаків після коми, то вони рівні, а от при точності трьох знаків - ні. Насправді, сучасні компілятори самі ставлять strictfp, тому що випадки, коли він не потрібен, можна перерахувати на пальцях. Йдеться про програми, які вимагають точність обчислень які перевищують [[]] (наприклад, щось пов'язане із наукою).

Використання[ред.ред. код]

Використання strictfp гарантує, що результати обчислень із плаваючою комою будуть однакові на всіх платформах. Це може бути надзвичайно корисно при порівнянні чисел із плаваючою комою.

strictfp може бути використаний у класах, інтерфейсах і неабстрактних методах. При використанні strictfp у методі, всі розрахунки проводяться всередині методу. При використанні strictfp у класі, всі розрахунки всередині класу.

Приклад використання strictfp у класі:

public strictfp class MyFPclass { 
    // ... вміст класу ...
}

Приклад використання strictfp у методах (Ці strictfp методи знаходяться у класі StrictMath, який у свою чергу міститься у Java-пакеті java.lang):

public static strictfp double abs(double);
public static strictfp int max(int, int);
public static strictfp long max(long, long);
public static strictfp float max(float, float);
public static strictfp double max(double, double);
public static strictfp int min(int, int);

Посилання[ред.ред. код]