Apache Derby: funkcja ATAN2
Opis
Zwraca liczbę DOUBLE
będącą kątem (podanym w radianach) dla tangensa kąta, podanego jako boki trójkąta.
Składnia
ATAN2(bok1, bok2)
Ograniczenia
- ‘bok1/bok2’ musi być DOUBLE
- Jeśli ‘bok1/bok2’ jest NULL – wynik jest NULL
- Jeśli ‘bok1’ = 0, a ‘bok2’ > 0 – wynik jest 0
- Jeśli ‘bok1’ = 0, a ‘bok2’ < 0 – wynik jest wartością najbliższą π
- Jeśli ‘bok1’ >, a bok ‘bok2’ = 0 – wynik jest wartością najbliższą π/2
- Jeśli ‘bok1’ <, a ‘bok2’ = 0 – wynik jest wartością najbliższą do -π/2
Przykład w klasie R076_ATAN:
package aderby.functions.math.ciclo; import aderby.DerbyUtil; import java.io.*; import java.sql.*; public class R076_ATAN2 { private static final String baza = "C:/Przyklady/r076_atan"; private static final String skrypt = "aderby/src/resources/sqls/mathdata2.sql"; private static final String selectsql = "SELECT VAL, VAL1, ATAN2(VAL, VAL1) FROM mathdata"; public static void main(String[] args) { DerbyUtil.startDerbyEngine(DerbyUtil.embdriver); Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true"); DerbyUtil.jdbcRunScript(skrypt, con); Statement stat = null; ResultSet rs = null; try { stat = con.createStatement(); rs = stat.executeQuery(selectsql); while (rs.next()) { System.out.println(rs.getDouble(1) + " " + rs.getDouble(2) + " " + rs.getDouble(3)); } } catch (SQLException e) { e.printStackTrace(); } DerbyUtil.close(stat); DerbyUtil.close(con); DerbyUtil.close(rs); DerbyUtil.shutdownEmbeddedDB(baza); DerbyUtil.shutdownDerbyEngine(); DerbyUtil.dropDatabase(new File(baza)); } }
Plik mathdata2.sql
CREATE TABLE mathdata( id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1), val DOUBLE, val1 DOUBLE ); CREATE INDEX i_val ON mathdata (val ASC); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, -37.8, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 39.7, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 36.6, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 33.2, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 39.2, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, -40.6, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 41.2, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 40.1, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, -39.8, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 38.9, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 38.3, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, -37.9, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 37.4, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 37.1, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, -36.8, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 36.7, 46.3); INSERT INTO mathdata (id, val, val1) VALUES (DEFAULT, 36.6, 46.3);
Wynik
-37.8 46.3 -0.6846700645692975 39.7 46.3 0.7088041131359324 36.6 46.3 0.6689193620523601 33.2 46.3 0.6220858438451695 39.2 46.3 0.7025473196530082 -40.6 46.3 -0.7198993545455149 41.2 46.3 0.7271783181193474 40.1 46.3 0.713761697143522 -39.8 46.3 -0.7100474827536714 38.9 46.3 0.6987611213175511 38.3 46.3 0.6911158756761087 -37.9 46.3 -0.6859646943450358 37.4 46.3 0.679464076873722 37.1 46.3 0.6755306235545354 -36.8 46.3 -0.6715722176825671 36.7 46.3 0.6702471844736242 36.6 46.3 0.6689193620523601
Pliki do ściągnięcia
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.