JavaScript ja nuoli-fuktiot

Siis en tiedä pitääkö puhua nuoli-funktioista vai nuoli-operaatioista, mutta mihin tarpeeseen nämäkin on luotu, ja kumpi oli ensin. Kerkisin oppia tuon "perinteisen", siis en tiedä onko tämä edes perinteinen, mutta ainakin selvempi tapa tehdä sama asia.

NORMAALI
Funktio palauttaa luvun (18.50€) elintarvikkeiden arvonlisäverolla (alv 14%) korotettuna.
function PlusAlv14(a) { return a ( a / 100 * 14 ) };
PlusAlv14(18.50)
21.09€

NUOLI-FUNKTIONA
Funktio palauttaa luvun (100€) yleisellä arvonlisäverolla (alv 24%) korotettuna.
var PlusAlv24 = a => { return a ( a / 100 * 24 ) };
PlusAlv24(100)
124€

Miten rajaan paluuarvon desimaalit kahteen?
11407
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat
  • Ahaa, se oli siis toFixed(2) jolla nuo desimaali rajataan.
    Kiitosta paljon, hyvä.

    Äänestä

  • Anonyymi kirjoitti:

    Ahaa, se oli siis toFixed(2) jolla nuo desimaali rajataan.
    Kiitosta paljon, hyvä.

    DelimitDecimals(2) olisi osuvampi nimi tuollaiselle funktiolle, hakukin onnistuisi helpommin.

    Äänestä

  • Anonyymi kirjoitti:

    DelimitDecimals(2) olisi osuvampi nimi tuollaiselle funktiolle, hakukin onnistuisi helpommin.

    Helppohan tuo haku oli, ehkä sekunti meni elinaikaa.

    https://duckduckgo.com/?q=javascript number decimals

    Äänestä

  • Anonyymi kirjoitti:

    Helppohan tuo haku oli, ehkä sekunti meni elinaikaa.

    https://duckduckgo.com/?q=javascript number decimals

    Tärvääpä toinen sekunti, ja hae miten tuo piste tulisi paluuarvossa pilkkuna.

    Äänestä

  • Anonyymi kirjoitti:

    Tärvääpä toinen sekunti, ja hae miten tuo piste tulisi paluuarvossa pilkkuna.

    Sehän on tietysti toLocaleString().

    let a = 12.345
    a.toLocaleString();
    //"12,345"

    Äänestä

  • Anonyymi kirjoitti:

    Tärvääpä toinen sekunti, ja hae miten tuo piste tulisi paluuarvossa pilkkuna.

    Metodilla toLocaleString() saa muotoiltua maakohtaisestikin. Suomen maa-asetuksella tulee desimaalierottimeksi pilkku. Voi käyttää suoraan valuuttamuotoakin.

    const PlusAlv24 = (a) => (a (a/100*24)).toLocaleString('fi-FI', {style:'currency', currency:'EUR'});
    console.log(PlusAlv24(100));

    Tuloste:
    124,00 €

    Jos haluaa pelkän luvun kahdella desimaalilla ilman tuhaterottimia, niin vaihtaa muotoiluksi:
    {minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: false}

    Tuosta löytyy enemmän tietoa kyseisestä metodista: https://www.techonthenet.com/js/number_tolocalestring.php

    Äänestä

  • Anonyymi kirjoitti:

    Sehän on tietysti toLocaleString().

    let a = 12.345
    a.toLocaleString();
    //"12,345"

    Ai niin, halusit tietyn määrän desimaaleja. Se ottaa toisen parametrin options, johon tuon voi määrätä:

    let a = 12.3456789
    a.toLocaleString('fi', {minimumFractionDigits: 2, maximumFractionDigits: 2})
    //"12.35"

    Ilmeisesti laitettava nuo min ja max, muuten saattaa tulla yksi desimaali liikaa.

    Äänestä

  • Anonyymi kirjoitti:

    Ai niin, halusit tietyn määrän desimaaleja. Se ottaa toisen parametrin options, johon tuon voi määrätä:

    let a = 12.3456789
    a.toLocaleString('fi', {minimumFractionDigits: 2, maximumFractionDigits: 2})
    //"12.35"

    Ilmeisesti laitettava nuo min ja max, muuten saattaa tulla yksi desimaali liikaa.

    Locale pitää antaa kait muodossa 'fi-FI', muuten taitaa käyttää defaulttia. Ubuntussa näkee komennolla 'locale' ja sieltä kohta LC_NUMERIC=fi_FI.UTF-8. Rahayksikön määrittää LC_MONETARY.

    Äänestä

  • Anonyymi kirjoitti:

    Metodilla toLocaleString() saa muotoiltua maakohtaisestikin. Suomen maa-asetuksella tulee desimaalierottimeksi pilkku. Voi käyttää suoraan valuuttamuotoakin.

    const PlusAlv24 = (a) => (a (a/100*24)).toLocaleString('fi-FI', {style:'currency', currency:'EUR'});
    console.log(PlusAlv24(100));

    Tuloste:
    124,00 €

    Jos haluaa pelkän luvun kahdella desimaalilla ilman tuhaterottimia, niin vaihtaa muotoiluksi:
    {minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: false}

    Tuosta löytyy enemmän tietoa kyseisestä metodista: https://www.techonthenet.com/js/number_tolocalestring.php

    Tämä on hyvä, taas kerran kiitän. Tuo EUR oli enemmän kuin osasin pyytää.

    Äänestä

  • Anonyymi kirjoitti:

    Tämä on hyvä, taas kerran kiitän. Tuo EUR oli enemmän kuin osasin pyytää.

    Minäkin kiitän.

    Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Anonyymi kirjoitti:

Siis en tiedä pitääkö puhua nuoli-funktioista vai nuoli-operaatioista, mutta mihin tarpeeseen nämäkin on luotu, ja kumpi oli ensin. Kerkisin oppia tuon "perinteisen", siis en tiedä onko tämä edes perinteinen, mutta ainakin selvempi tapa tehdä sama asia.

NORMAALI
Funktio palauttaa luvun (18.50€) elintarvikkeiden arvonlisäverolla (alv 14%) korotettuna.
function PlusAlv14(a) { return a ( a / 100 * 14 ) };
PlusAlv14(18.50)
21.09€

NUOLI-FUNKTIONA
Funktio palauttaa luvun (100€) yleisellä arvonlisäverolla (alv 24%) korotettuna.
var PlusAlv24 = a => { return a ( a / 100 * 24 ) };
PlusAlv24(100)
124€

Miten rajaan paluuarvon desimaalit kahteen?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu