Hej,
Åkte på en luring då autotradern inte verkar beräkna subtraktion av decimaltal helt rätt. Se bifogat. 13,59-13,61 borde bli -0,02, men debuggern visar -0,0199999...
Addition med samma tal verkar dock fungera.
Obs att detta inte verkar vara endast i debuggern, utan anledningen till att jag testade där var för att mina villkor inte verkade gå igenom i en trigger pga detta.
Hur kommer sig detta och vad kan man göra åt saken?
Har tillfälligt gjort en workaround ungefär så här, för att försöka få ut korrekt differens:
tmp=sub(varde1,varde2)
differens=div(int(add(mult(tmp,100),if(gt(tmp,0),0.5,if(lt(tmp,0),-0.5,0)))),100)
Edit: I min workaround multiplicerar jag med 100, avrundar till närmaste heltal och delar sedan på 100. Detta för att få fram differensen avrundat till närmaste hundradel vilket stämmer bättre med verkligheten än autotraderns beräkning i det här fallet.
Åkte på en luring då autotradern inte verkar beräkna subtraktion av decimaltal helt rätt. Se bifogat. 13,59-13,61 borde bli -0,02, men debuggern visar -0,0199999...
Addition med samma tal verkar dock fungera.
Obs att detta inte verkar vara endast i debuggern, utan anledningen till att jag testade där var för att mina villkor inte verkade gå igenom i en trigger pga detta.
Hur kommer sig detta och vad kan man göra åt saken?
Har tillfälligt gjort en workaround ungefär så här, för att försöka få ut korrekt differens:
tmp=sub(varde1,varde2)
differens=div(int(add(mult(tmp,100),if(gt(tmp,0),0.5,if(lt(tmp,0),-0.5,0)))),100)
Edit: I min workaround multiplicerar jag med 100, avrundar till närmaste heltal och delar sedan på 100. Detta för att få fram differensen avrundat till närmaste hundradel vilket stämmer bättre med verkligheten än autotraderns beräkning i det här fallet.
Comment