Hirdetés

Új hozzászólás Aktív témák

  • NoX
    senior tag

    Ahogy sztanozs is írja, ennek nem sok köze van a JS-hez, ez a számítógépes számábrázolás pontatlansága (IEEE754 és satöbbi) és minden nyelven így működik (ezért mondták nekünk az egyetemen, hogy float számok esetén sosem egyenlőséget vizsgálunk, hanem hogy a két szám különsége egy megadott threshold alatt van-e, mert különben igen szívás lesz debugolni...)

    Jogos, túl közhelyet használtam és sarkítottam a "JS logic"-al.

    Közben pontosítottam és univerzálisabbá tettem az ellenőrzésem, figyelembe véve, hogy mennyi tizedesjeggyel van dolgom.

    Ezek most itt beégetett adatok a konkrét példa miatt, de ezekre van függvény, ami megadja az értéküket, csak nem akartam bonyolítani.

    var quantity = 1.65,
    var minQuantity = 0.55,
    var decimalsCount = 2;

    if ((Math.round(quantity * Math.pow(10, decimalsCount)) % Math.round(minQuantity * Math.pow(10, decimalsCount))) / Math.pow(10, decimalsCount)) {

Új hozzászólás Aktív témák