dimesum

Etusivu / Blogi / Tekniikka

Tekniikka

Miksi jaetut laskut eivät koskaan täsmää

· 8 min lukuaika · · tarkistanut Jagadeep Sai

Jaettu saldo joka ei täsmää johtuu lähes aina yhdestä neljästä asiasta: pyöristetystä sentistä, toisesta valuutasta, muokatusta laskusta tai lähteneestä jäsenestä, ja vain ensimmäinen on laskutoimitusta.

Katsot ryhmän saldoa, ja se on pielessä. Ehkä muutaman sentin verran. Ehkä koko laskun verran. Taustalla on hiljainen mutta aito kysymys: onko sovellus väärässä, vai sinä?

Tässä rauhallinen vastaus. Kun jaat laskuja muiden kanssa, saldolla joka ei täsmää on lähes aina yksi neljästä syystä, ja vain yksi niistä on laskutoimitus. Muut kolme ovat valuutta, muokkaus ja joku joka lähti. Kun tunnistat oman syysi, korjaus lakkaa olemasta mysteeri.

Neljä syytä

Aloita ongelman muodosta. Jaettu saldo on juokseva summa siitä, kuka maksoi ja kuka on velkaa. Sen pitäisi summautua nollaan koko ryhmässä: jokainen euro, joka jollekulle kuuluu, on euro jonka joku toinen on velkaa. Kun näin ei ole, summaan on päätynyt jotain mitä summa ei voinut pitää sisällään.

Miksi jaetut laskut eivät siis täsmää? Yleensä yhdestä neljästä syystä. Sentti päätyi odottamattomaan paikkaan, kun lasku ei mennyt tasan. Kaksi valuuttaa laskettiin yhteen kuin ne olisivat yhtä ja samaa.

Vanha lasku muuttui sen jälkeen, kun ihmiset olivat jo maksaneet sitä vastaan. Tai joku lähti ryhmästä yhä velkaa jättäen. Kolmella näistä neljästä ei ole mitään tekemistä laskutaitosi kanssa. Laajemman kuvan siitä, miten ryhmä oikeasti selvittää velkansa, saat purkuartikkelistamme ryhmän tilien selvittämisestä.

Taulukko nimeää jokaisen syyn kerran, miten se näkyy, ja mikä sen korjaa. Kaikki sen jälkeen on pitkä versio.

Neljä syytä, miksi jaettu saldo ei täsmää

Neljä syytä, miksi jaettu saldo ei täsmää
SyyMiten se näkyyMikä sen korjaa
PyöristysSaldo on pielessä sentin tai kaksi, ei koskaan enempääDeterministinen sääntö, joka lähettää ylimääräisen sentin aina samaan paikkaan
ValuuttaSumma on pielessä kokonaisen määrän verran, tai näyttää yhdeltä oudolta luvultaPidä erillinen saldo kullekin valuutalle äläkä koskaan laske niitä yhteen
MuokkausSaldo hyppäsi, kun vanha lasku muuttuiLaske laskun jako uudelleen ja kirjaa erotus historiaan
Joku lähtiSaldo ei saavuta nollaa tekipä mitä tahansaPäätä kuka kattaa tai antaa anteeksi lähteneen osuuden, ja kirjaa se

Pyöristys: ylimääräinen sentti ja miksi sen on oltava deterministinen

Tässä esimerkki, ja jokaisen sen luvun voit laskea itse uudelleen. Lucas, Aiko ja Sofia menevät ulos. Illallinen maksaa €100.00, ja he jakavat sen tasan. €100.00 jaettuna kolmella on €33.3333 ja niin edelleen loputtomiin, mitä mikään valuutta ei voi maksaa. Niinpä jako on €33.33, €33.33 ja €33.34.

Laske ne yhteen: €33.33 plus €33.33 plus €33.34 on tasan €100.00. Kolme osuutta ovat rehellisiä. Yksi niistä on sentin suurempi.

Tuo ylimääräinen sentti on koko ongelma pienoiskoossa. Jonkun on kannettava se. Tämä on jaettujen kulujen pyöristys, ja sillä on yksi tehtävä: sijoittaa ylimääräinen sentti johonkin kiinteään paikkaan sen sijaan että se olisi satunnainen. Jos sovellus jakaa sen aina uudelleen, sama illallinen voi tuottaa €33.34 Aikolle tänään ja €33.34 Sofialle huomenna, ja saldo heilahtaa sentin verran ilman näkyvää syytä.

Siksi teemme säännöstä deterministisen. Ylimääräinen sentti menee maksajalle joka kerta. Lucas maksoi, joten Lucas kantaa €33.34 ja muut kaksi kantavat €33.33 kumpikin. Lucasille kuuluu €100.00 miinus hänen oma €33.34, mikä on €66.66.

Aiko on velkaa €33.33. Sofia on velkaa €33.33. €33.33 plus €33.33 on €66.66. Ryhmä summautuu nollaan. Pyöristys käytti euron kahta desimaalia, sille määriteltyä pienintä yksikköä kansainvälisessä valuuttastandardissa ISO 4217; valinta antaa sentti maksajalle on meidän, ja sen ainoa hyve on se, ettei se koskaan muutu.

Verkossa toimiva laskunjakolaskuri osaa tehdä tämän jaon yhdelle illalliselle. Vaikeampi osa on tehdä se samalla tavalla sadannelle kerralle, mikä on myös se ero josta välitämme artikkelissa ravintolalaskun jakaminen reilusti. Kirjanpitäjät ovat kiistelleet pitkään siitä mikä sääntö on reiluin; yleinen oletus tietotekniikassa, pyöristys parilliseen, on esitetty IEEE 754 -standardissa. Emme tarvitse sitä tässä, koska meidän senttimme ei ole puolikas.

Kolme osuutta kokonaisuudesta jättää tasan yhden sentin yli, ja ainoa kysymys on kuka sen pitää.

Kaksi valuuttaa yhdessä ryhmässä, ja miksi niitä ei voi laskea yhteen

Nyt ryhmään tulee toinen lasku. Aiko maksaa taksin, ja se maksaa ¥6,000. Houkutus, väsyneen summan kohdalla, on lisätä ¥6,000 summaan €100.00 ja näyttää yksi luku.

Tuo luku ei tarkoita mitään. €100.00 ja ¥6,000 eivät ole samanlaisia asioita, ja niiden yhteenlaskeminen on kuin laskisi matkan ja painon yhteen. Jenillä on pienimpänä yksikkönään nolla desimaalia, eurolla kaksi, jälleen standardin ISO 4217 mukaan. Ne eivät edes pyöristy samalla tavalla.

Siksi pidämme erillisen saldon kullekin valuutalle. Euroissa mikään ei muuttunut: Aiko on velkaa Lucasille €33.33, ja Sofia on velkaa Lucasille €33.33. Jeneissä taksi jakautuu kolmeen osaan, ¥2,000 kullekin. Aiko maksoi ¥6,000, joten Aikolle kuuluu ¥6,000 miinus ¥2,000, mikä on ¥4,000.

Lucas on velkaa ¥2,000. Sofia on velkaa ¥2,000. ¥2,000 plus ¥2,000 on ¥4,000. Kaksi saldoa, kumpikin summautuu nollaan, kumpikaan ei esitä olevansa toinen. Jos haluat syvemmät vikatilat tästä, kirjoitimme ne auki artikkelissa valuuttojen väliset rahavirheet.

Vanhan laskun muokkaus, ja mitä historialle on tapahduttava

Kolmas kuukausi. Joku huomaa, että illallinen kirjattiin väärin: se oli €120.00, ei €100.00. Hän muokkaa sitä. Tässä kohtaa saldot jotka näyttivät selvitetyiltä liikahtavat yhtäkkiä, ja tässä moni sovellus menee hiljaa pieleen.

Naiivi korjaus on kirjoittaa vanha luku päälle ja laskea alusta. Mutta ihmiset ovat jo maksaneet vanhaa jakoa vastaan. Jos historia kirjoitetaan hiljaa uusiksi, kukaan ei näe miksi he ovat nyt enemmän velkaa. Siksi muokkauksen on laskettava jako uudelleen ja kirjattava erotus, ei pyyhittävä menneisyyttä. €120.00 jaettuna kolmella on tasan €40.00, ei ylimääräistä senttiä tällä kertaa.

Kukin osuus on €40.00. Lucas maksoi €120.00, joten Lucasille kuuluu €120.00 miinus €40.00, mikä on €80.00. Aiko on velkaa €40.00. Sofia on velkaa €40.00. €40.00 plus €40.00 on €80.00.

Euron saldo siirtyi €66.66 velasta €80.00 velkaan, ja erotus, €13.34, on täsmälleen jäljitettävissä siihen €20.00, jonka verran illallinen kasvoi: kaksi muuta osuutta nousivat kumpikin €6.67, ja €6.67 plus €6.67 on €13.34. Säilytämme vanhan merkinnän ja lisäämme korjauksen sen päälle. Miksi muokkauksen on laskettava jakonsa uudelleen sen sijaan että esittäisi illallisen olleen aina €120.00, on oma tarinansa artikkelissa muokkauksen on laskettava jakonsa uudelleen.

Joku lähti, ja mitä tapahtuu sille mitä hän oli velkaa

Neljäs syy on ihminen, ei luku. Sanotaan että Sofia lähtee ryhmästä yhä velkaa €40.00 euroissa ja ¥2,000 jeneissä. Nyt saldo ei voi saavuttaa nollaa itsestään, koska yksi ihmisistä joista se riippuu on poissa.

Tämä ei ole laskuvirhe; laskutoimitus on kunnossa. Ryhmässä on aukko Sofian osuuden kokoinen.

On vain muutama rehellinen tapa toimia, ja kaikki niistä ovat päätöksiä, eivät laskutoimituksia. Ryhmä voi antaa summan anteeksi, ja kirjata että se annettiin anteeksi. Joku voi kattaa sen, ja kirjata kuka. Tai Sofia voi maksaa ennen lähtöään.

Tärkeää on, että valinta kirjataan merkintänä, jotta saldo näyttää nollaa siksi että jotain tapahtui, ei siksi että velka poistettiin hiljaa. Emme koskaan päätä tätä puolestasi; kirjaamme sen valinnan jonka teet. Sama logiikka pätee kämppikseen joka muuttaa pois kesken vuokrasopimuksen, mistä kerromme artikkelissa vuokran jakaminen kämppisten kesken.

Miten tarkistat saldon itse, kun jaat laskuja

Voit tarkistaa minkä tahansa näistä käsin, ja se kannattaa osata. Ota yksi valuutta kerrallaan, äläkä koskaan sekoita niitä. Laske sille valuutalle yhteen kaikki mitä kukin henkilö maksoi. Laske yhteen kaikki mitä kukin oli velkaa, osuus osuudelta.

Henkilön saldo on se mitä hän maksoi miinus se mitä hän oli velkaa. Tee tämä jokaiselle, ja laske sitten kaikki saldot yhteen. Summan on oltava nolla. Jos se ei ole, erotus kertoo mikä syy sinulla on.

Yhden tai kahden sentin erotus on pyöristys; katso mihin ylimääräinen sentti päätyi ja tarkista että se päätyi samaan paikkaan joka kerta. Kokonaisen laskun kokoinen erotus, tai summa joka näyttää mahdottomalta, on yleensä toinen valuutta joka sekoittui mukaan. Saldo joka on muuttunut viime katsomisen jälkeen viittaa muokkaukseen, joten avaa laskun historia.

Saldo joka ei sulkeudu lainkaan viittaa johonkin joka lähti. Kun jaat laskuja ystävien kesken, saldo on aina vain laskutoimitusta, joten itsepintainen erotus on tietoa, ei huonoa onnea. Jos haluat mieluummin nähdä luvut kuin uskoa sanaamme, laskujen jakamisen tilastot -artikkelimme näyttää kuinka usein kukin näistä oikeasti tapahtuu.

Mitä vain lisäävä tilikirja tekee kaikille neljälle

Dimesum-sovelluksen alla on vain lisäävä, kahdenkertainen tilikirja, ja se on julkinen, joten mitään tästä ei tarvitse uskoa sokeasti. Kahdenkertainen tarkoittaa että jokainen summa kirjataan kahdesti, kerran velkana ja kerran saatavana, joten kaksi puolta ovat aina tasapainossa; periaate on ohjelmistoja vanhempi ja kuvattu selkeästi artikkelissa kahdenkertainen kirjanpito. Vain lisäävä tarkoittaa ettemme koskaan kirjoita päälle. Vain lisäämme.

Tämä yksi rakenne hoitaa kaikki neljä syytä. Pyöristys on deterministinen, koska sentin kohde on kirjoitettu kirjaussääntöön, ei päätetty hetkessä. Valuutat pysyvät erillään, koska jokainen merkintä kantaa oman valuuttansa ja tilikirja kieltäytyy laskemasta niitä yhteen. Muokkaus muuttuu uudeksi korjaavaksi merkinnäksi joka laskee jaon uudelleen, joten vanha totuus ja uusi säilyvät kumpikin; kuvaamme tuon koneiston artikkelissa vain lisäävä tilikirja jaetuille kuluille.

Ja lähtevästä ihmisestä tulee kirjattu päätös, merkintä kuten mikä tahansa muu, eikä puuttuva rivi. Kirjaamme kaiken tämän. Emme koskaan pidä hallussa tai siirrä rahojasi; tilikirja on kirjaus, ja selvitys tapahtuu suoraan teidän välillänne, niin harvalla siirrolla kuin osaamme laskea. Jos vertailet työkaluja, huomiomme artikkeleissa laskunjakosovellukset vertailussa ja vuokranjakosovellukset vertailussa pysyvät siinä, mitä kukin tekee ja mitä ei tee.

Saldo joka ei täsmää ei ole tuomio ystävyydestäsi tai laskutaidostasi. Se on yksi neljästä pienestä faktasta ryhmästäsi. Avaa Dimesum ja tilikirja kertoo sinulle mikä niistä.

Usein kysytyt kysymykset

Miksi jaettu saldo ei täsmää?

Lähes aina yhdestä neljästä syystä: pyöristynyt sentti, vahingossa lisätty toinen valuutta, muokattu vanha lasku, tai velkaa jättänyt lähtenyt jäsen. Vain ensimmäinen on laskutoimitus. Valitse yksi valuutta, laske kunkin maksut miinus osuudet, ja erotuksen koko kertoo mikä syy sinulla on.

Kuka saa ylimääräisen sentin, kun lasku ei mene tasan?

Se jonka sovelluksen sääntö määrää, kunhan se sanoo saman joka kerta. €100.00 illallinen kolmeen osaan on €33.33, €33.33 ja €33.34, ja tuon ylimääräisen sentin on päädyttävä johonkin kiinteään paikkaan. Dimesum lähettää sen maksajalle, joten sama illallinen ei koskaan tuota eri saldoa kahdesti. Sääntö on tärkeämpi kuin valinta.

Voiko kahden eri valuutan saldot laskea yhteen?

Ei, eikä minkään rehellisen sovelluksen pitäisi. €100.00 ja ¥6,000 ovat erilaisia asioita, joilla on eri pienimmät yksiköt, joten niiden yhteenlaskeminen antaa luvun joka ei tarkoita mitään. Dimesum pitää erillisen saldon kullekin valuutalle eikä koskaan sulauta toista toiseen. Selvität kunkin valuutan erikseen, minkä vuoksi ryhmä voi olla velkaa euroissa ja jeneissä yhtä aikaa.

Mitä saldolle tapahtuu, kun vanhaa laskua muokataan?

Jako lasketaan uudelleen ja erotus kirjataan uutena korjauksena, sen sijaan että menneisyys kirjoitettaisiin päälle. Muokkaa €100.00 illallinen €120.00 summaksi ja kukin tasaosuus siirtyy €33.33 arvosta €40.00 arvoon, joten velan määrä kasvaa €13.34. Vanha merkintä pysyy näkyvissä, korjaus asettuu sen päälle, ja kuka tahansa voi jäljittää täsmälleen miksi saldo muuttui.

Mitä tapahtuu, kun joku lähtee ryhmästä velkaa jättäen?

Laskutoimitus on yhä kunnossa; ryhmässä on vain aukko maksamattoman osuuden kokoinen. Saldo ei voi saavuttaa nollaa ennen kuin joku päättää mitä tehdä. Summa voidaan antaa anteeksi, toinen jäsen voi kattaa sen, tai se voidaan maksaa ennen lähtöä, ja mikä tahansa niistä kirjataan merkintänä. Dimesum kirjaa päätöksen jonka teet; se ei koskaan tee sitä puolestasi.