Näitä sääntöjä käytetään kaikkialla missä tarvitaan reaalilukujen muotoilua (esimerkiksi Tekstiformaatti, alkutiedostot, otsikkotiedostot ja Pisteen esitys). Käytettävissä on myös toiminto muotoilun rakentamista varten.
Formaattimäärittely sisältää mahdollisen aste/minuutti/sekunttiformaatin sekä desimaalipyöristyksen käsittelyn. Nämä määrittelyt toimivat kaikille koordinaattiarvoille ja myös numeerisille ominaisuustiedoille. Jos määrittely alkaa +-merkillä, kirjoitetaan myös positiivisille arvoille etumerkki. Merkillä = voidaan kirjoittaa luvun itseisarvo.
Desimaaliosio alkaa pisteellä ja kertoo kirjoitettavien desimaalien määrän. Oletuksena kirjoitettava tieto pyöristetään normaalien matemaattisten pyöristyssääntöjen mukaan. Pyöristysmerkit < ja > määrittelyn lopussa pyöristävät alas- tai ylöspäin. Negatiivinen desimaalien määrä pyöristää lähimpään kymmenen potenssiin. Pelkkä piste käyttää muuntimen desimaaliasetusta.
Piste myös pakottaa ominaisuustiedon numeeriseksi. Tällöin se kirjoitetaan normaalien desimaaliasetusten mukaan ja luettaessa mahdollinen desimaalierottimena oleva pilkku muutetaan pisteeksi. Puuttuvat numeeriset arvot kirjoitetaan oletuksena nolliksi ja tyhjän numeerisen arvon lukeminen luo ominaisuuden arvolla nolla. Jos tyhjät arvot halutaan ohittaa, voidaan formaattimäärittely aloittaa merkillä _. Tällöin puuttuvat numeeriset ominaisuudet kirjoitetaan tyhjänä ja luettaessa tyhjistä arvoista ei luoda ominaisuutta.
Vaikka ominaisuudet ovat sisäisesti talletettuna tekstinä kiinteällä desimaalimäärällä, voidaan ne silti kirjoittaa ulos vähemmillä desimaaleilla. Luettaessa desimaalimäärittelyllä ei ole merkitystä koordinaateille, vaan kaikki desimaalit luetaan aina. Ominaisuuksiin luetut arvot talletetaan määrittelyn mukaisilla desimaaleilla.
Käytettävissä olevat yksikkömuunnokset:
Merkki | Kerroin | Esimerkki | Tulos | Kuvaus |
---|---|---|---|---|
d | 1 | $ANGLE%dd.3 | 1.234 | Aste |
e | 10^E | $VALUE%e3.1 | 1234.5 | Eksponentti E |
f | 180/200 | $ANGLE%f.3 | 1.234 | Aste gooneista |
g | 200/180 | $ANGLE%g.3 | 1.234 | Gooni asteista |
h | 1 | $TIME%hh:mm:ss | 12:34:56 | Tunti |
k | 1 | $SCALE%k.0 | 1:123 | MIttakaava |
m | 60 | $ANGLE%ddmm.3 | 0103.456 | Minuuttiosa |
o | 1000 | $VALUE%o.0 | 234.5‰ | Promille |
p | 100 | $VALUE%p.1 | 23.4% | Prosentti |
q | 1/X | $SLOPE%q.1 | 1:23.4 | Suhdeluku |
r | PI/180 | $ANGLE%r5.0 | 123456 | Radiaani asteista |
s | 3600 | $ANGLE%ddmmss.3 | 010305.678 | Sekunttiosa |
v | 1/X*1000 | $SLOPE%v.1 | 123.4 | Pystysuhdeluku mm/m |
Numeerinen arvo voidaan kertoa prosenteiksi määreellä p tai promilleiksi määreellä o. Prosentti- tai promillemerkki lisätään automaattisesti luvun perään. Määreellä q voidaan numeerinen arvo esittää suhdelukuna. Esitysmuoto riippuu siitä, onko alkuperäinen arvo pienempi vai suurempi kuin 1. Arvoa 1 pienemmät näytetään muodossa 1:x ja arvoa 1 suuremmat muodossa X:1. Määreellä k voidaan arvo esittää mittakaavana lisäämällä sen alkuun 1: (esim. 2000 -> 1:2000).
Määreellä e voidaan arvo kertoa kymmenen potenssilla. Tätä voidaan käyttää yksikön etuliitteellä kertomiseen. Joitain esimerkkejä:
Formaatti | Kerroin | Esimerkki | Tulos | Kuvaus |
---|---|---|---|---|
e3 | 1000 | $VALUE%e3.1 | 1234.5 | Millimetri |
e2 | 100 | $VALUE%e2.1 | 123.4 | Senttimetri |
e-3 | 0.001 | $VALUE%e-3.3 | 0.123 | Kilometri |
Näitä määrittelyjä voidaan käyttää myös lukemiseen jolloin niiden vaikutus on päinvastainen. Lukeminen formaatilla %p olettaa alkuperäisen arvon olevan prosentteja ja jakaa sen sadalla. Vastaavasti lukeminen formaatilla %e3 muuntaa millimetrit metreiksi jakamalla arvon tuhannella.
Esimerkkejä:
X%.3 123456.789 Kirjoitus kolmella desimaalilla X%+.3 +123456.789 Etumerkki myös positiivisille arvoille X%=.3 123456.789 Itseisarvo X%.2 123456.79 Normaali pyöristys kahdella desimaalilla X%.2< 123456.78 Pyöristys alaspäin kahdella desimaalilla X%.-2 123500 Pyöristys negatiivisilla desimaaleilla $SCALE%. 123.456 Numeerinen ominaisuus oletusdesimaaleilla $SCALE%k.0 1:123 Numeerinen ominaisuus mittakaavana $VALUE%.1"%" 0.2% Arvo prosentteina $VALUE%p.1 23.4% Arvo kerrottuna prosenteiksi $VALUE%o.1 234.5‰ Arvo kerrottuna promilleiksi $VALUE%e3.1 234.5 Arvo kerrottuna tuhannella $SLOPE%q.1 1:23.4 Arvo suhdelukuna $SLOPE%q.1 43.2:1 Arvo suhdelukuna $MISSING%.0 0 Puuttuva numeerinen ominaisuus nollana $MISSING%_.0 Puuttuva numeerinen ominaisuus tyhjänä $CRD_B@14%+.2 +123.45 Laskentatulosominaisuus formatoituna
Aste-, minuutti- ja sekunttiosien formatointi määritellään pienillä kirjaimilla d, m ja s sekä mahdollisilla erotinmerkeillä niiden välissä. Määrittely voi sisältää näiden eri yhdistelmiä, mutta osien järjestyksen on aina oltava d-m-s eli asteet, minuutit ja sekunnit. Yksiköitä voidaan jättää pois, mutta minuuttien yli ei voi hypätä (yhdistelmä ds ei ole sallittu). Jos kirjoitettava arvo on negatiivinen, kirjoitetaan minuutit ja sekunnit silti aina ilman etumerkkiä. Kunkin yksikön leveys määritetään kirjainten määrällä: d, dd, ddd, m, mm, s tai ss. Lyhyemmät arvot täytetään vasemmalta nollilla. Yksiköiden välissä oleva erotin voi olla melkein mikä tahansa yksittäinen merkki. Jos erotinmerkillä on muissa formaattimäärittelyissä jokin erikoismerkitys (lainaus- ja heittomerkit, tietueiden erotinmerkit), on sen edelle laitettava hattumerkki (^). Välilyönti erottimena voidaan antaa myös alaviivalla (_).
Arvo voidaan muuntaa radiaaneiksi kirjaimella r tai gooneiksi kirjaimella g. Radiaanit voidaan myös kertoa kymmenen potenssilla lisäämällä kirjaimen r perään exponentti (esim. r4 kerroin on 10000). Kirjaimilla - ja ¤ voidaan arvo pakottaa joko välille -PI - PI tai 0 - 2xPI.
Esimerkkejä:
X%r.5 1.23456 Arvo radiaaneina ja desimaaleina X%r5.0 123456 Arvo radiaaneina kerrottuna arvolla 100000.0 X%g.4 1.2345 Arvo gooneina ja desimaaleina X%-g.4 -1.2345 Arvo gooneina välillä -PI - PI X%¤g.4 1.2345 Arvo gooneina välillä 0 - 2xPI X%d.3 1.234 Asteet desimaaleilla, sama kuin %.3 X%d.0< 1 Pelkkä asteosa X%dd.0< 01 Asteosa kahdella merkillä X%ddd.0< 001 Asteosa kolmella merkillä X%m.0< 3 Pelkkä minuuttiosa X%ss.0< 05 Sekunttiosa kahdella merkillä X%ddmm.3 0103.456 Asteosa ja minuutit desimaaleilla (NMEA) X%ddmmss.3 010305.678 Asteosa, minuuttiosa ja sekunnit X%d_m_s.3 1 3 5.678 Välilyönti erottimena X%d°m^'s^".3 1°3'5.678" Erottimina °, ' ja " X%dd°mm^'ss^".3 01°03'05.678" Erottimina °, ' ja " sekä täyttö nollilla
Määrittelyn perässä voidaan antaa vakioteksti lainausmerkeissä tai heittomerkeissä. Lainausmerkeissä annettu vakioteksti voi sisältää heittomerkkejä ja päinvastoin. Oletuksena tämä vakioteksti kirjoitetaan muotoiltavan arvon perään. Vaihtoehtoisesti voidaan &-merkillä määrätä missä kohtaa vakiotekstiä arvo sijaitsee. Esimerkiksi vakioteksti "dx=&" kirjoittaa tekstin ennen arvoa ja vakioteksti "(&)" molemmin puolin arvoa. Vakioteksti voi sisältää myös pystyviivalla merkittyjä rivinvaihtoja.
Esimerkkejä:
$VALUE%"%" 1.234% Yksikkö arvon perässä $VALUE%.1"%" 1.2% Yksikkö arvon perässä $VALUE%.1"m" 1.2m Yksikkö arvon perässä $VALUE%.1" m" 1.2 m Yksikkö arvon perässä $VALUE%.1"& m" 1.2 m Yksikkö arvon perässä $VALUE%.1"value=&" value=1.2 Otsikko ennen arvoa $VALUE%.1"(&)" (1.2) Arvo suluissa $VALUE%.1"'&'" '1.2' Arvo heittomerkeissä $VALUE%.1'"&"' "1.2" Arvo lainausmerkeissä $VALUE%.1"value|& m" value Monirivinen teksti 1.2 m