Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Avrundningsproblem

Postades av 2014-10-02 21:07:51 - Lars Lantz, i forum javascript/dhtml, Tråden har 2 Kommentarer och lästs av 2874 personer

Hej!

Kan man på något vis fixa så att javascript räknar rätt?
Exempel från w3school:
var x = 0.2 + 0.1; // x will be 0.30000000000000004
var x = (0.2 * 10 + 0.1 * 10) / 10; // x will be 0.3
Detta sättet är inte optimalt. Finns det något ännu bättre sätt? Jag har själv testat att göra om mina tal till heltal, göra beräkningarna med dessa och sedan göra om till decimaltal igen. Det blev inte så bra.
Finns det någon som har en lösning på problemet?

Tack på förhand
Lars Lantz


Svara

Sv: Avrundningsproblem

Postades av 2014-10-03 16:03:09 - Tomas Granlund

Det enkla (och i nån bemärkelse enda korrekta) svaret är "nej". Motiveringen är att javascript representerar tal som 64-bitars flyttal, vilket kan ge spännande effekter i vissa fall.

Ett vanligt förfarande för att minska risken för problem är, som du är inne på, att multiplicera med en korrigeringsfaktor innan operationen utförs. Därefter divideras med samma faktor, och förhoppningsvis är slutresultatet mindre fel än det vore annars. Ett lite bekvämare sätt att göra detta är att använda t.ex. sinful.js:

var x = 0.1;
var y = 0.2;

alert(Math.mul(x, y)); // ger 0.02


Svara

Sv:Avrundningsproblem

Postades av 2014-10-04 09:23:26 - Lars Lantz

Hej Tomas!

Jag har kikat lite på sinful.js men jag får inte till det.
Det enda som händer är att jag får en tom ruta.
Vad är det för fel på nedanstående kod?

Jag har testat med lite olika webbläsare nu och det funkar i Chrome, Safari och IE men inte i Firefox.
Är detta något du har råkat ut för tidigare? Kollar man i firebug så ser det ut som om den läser in filen
men den verkar inte begripa vad som står i den. Den känner inte igen .sub.
Finns det någon lösning på problemet?

<html>

<head>
<title>None</title>
<link rel="stylesheet" type="text/css" href="css/stilmall.css">
<script src="guipn-sinful.js-0f784b8/sinful.js"></script>
</head>

<body>
<script>
	var x = 120.125;
	var y = 120.120;
	document.write(Math.sub(x, y));
</script>
</body>

/Lars


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 574
27 958
271 741
5 860
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies