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?
JavaScript ja nuoli-fuktiot
12
336
Vastaukset
- Anonyymi
Nuolifunktio taisi tulla ES6:n myötä. Makuasia varmaan onko siitä iloa vai ei. Hieman se sotkeekin, kun joka paikassa ei voi edes käyttää.
Desimaalit saa vaikka toFixed()-metodilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
let PlusAlv24 = (a) => (a (a/100*24)).toFixed(2);
console.log(PlusAlv24(100));
Tuloste:
124.00- Anonyymi
Ahaa, se oli siis toFixed(2) jolla nuo desimaali rajataan.
Kiitosta paljon, hyvä. - Anonyymi
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.
- Anonyymi
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 - Anonyymi
Anonyymi kirjoitti:
Helppohan tuo haku oli, ehkä sekunti meni elinaikaa.
https://duckduckgo.com/?q=javascript number decimalsTärvääpä toinen sekunti, ja hae miten tuo piste tulisi paluuarvossa pilkkuna.
- Anonyymi
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" - Anonyymi
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 - Anonyymi
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. - Anonyymi
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.
- Anonyymi
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.phpTämä on hyvä, taas kerran kiitän. Tuo EUR oli enemmän kuin osasin pyytää.
- Anonyymi
Anonyymi kirjoitti:
Tämä on hyvä, taas kerran kiitän. Tuo EUR oli enemmän kuin osasin pyytää.
Minäkin kiitän.
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Kiva kun SDP alkaa hallitsemaan Suomea
Vanhat hyvät ajat taas palaavat ja kansa vaurastuu. Muistatteko vielä Sorsan aikakauden? Silloin Suomessa tehtiin jopa2788298Säästäminen on typerää, muistakaa äänestää demareita
Säästäminen on typerää, koska aiheuttaa vain talouden taantumista ja lopulta tappaa potilaan. Demareiden tapa on satsat664972Olli Rehn: Eläkkeistä pitää leikata. Nyt tuli Lindtmanille kauhun paikka
jos johtaa seuraavaa hallitusta. Purra: eläkkeisiin ei kosketa. Eikä tällä hallituskaudella varmasti kosketa, mutta seur2804320SDP:n budjetin peruskivi: "Rahaa nimittäin on!"
Demarien talouspolitiikan ydin on usein tiivistetty klassiseen meemiin: rahaa on, kunhan se on jonkun muun rahaa. Vuoden542957Sara Sieppi umpirehellisenä Amazing Race -kulissien takaisesta elämästä
Sara Sieppi oli mukana Amazing Race Suomi -realityssä. Somevaikuttajalla oli takana raskasta aikaa ja isoja suruja, eikä12426Herkkua vai hötöä? Kaksi Beck-leffaa tällä vkolla tv:stä
Beck-elokuvat tuntuvat olevan suomalaisten makuun. Tällä viikolla televisiosta tulee kaksi ruotsalaista taidonnäytettä,31810Hatunnosto! Mari Hynynen (os. Perankoski) ja Jouni Hynynen auttavat vähäosaisia upealla tavalla!
Hatunnosto! Mari ja Jouni Hynynen ovat Vailla vakinaista asuntoa ry:n uudet kummit. Hynysiä motivoi halu lisätä ymmärr51677- 1091669
TTP avajaiset
Tuhannen Taalan Paikka avautuu 1.3-26. Onpa tosi mukavaa! Kiitos Jaanalle kun olet niin aktiivinen ja jaksat yrittää ja401573Tiesitkö? Tämä suomalainen keksi Elämäni biisi -sarjan - Viinin lipittely mainittu!
Tiesitkö? Elämäni biisi on suomalainen formaatti ja sen takana on Petja Peltomaa. Hänen kynästä ovat lähtöisin myös mm.01550