Problem med decimalpunkt

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Problem med decimalpunkt

Inlägg av SeniorLemuren »

Jag använder mySQL och ASP (classic) för att hantera data. Säg att jag t.ex. lagrar ett decimaltal 55.7 (med decimalpunkt) i databasen. (jag har kollat så att det verkligen ligger med decimalpunkt i mySQL) När jag sedan läser tillbaka talet till ett inputfält på en sida i min läsare så har punken bytts ut mot ett decimalkomma och går inte att hantera som ett decmaltal längre. Vem faan byter ut mina decimalpunkter mot komma?

Kod: Markera allt

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
.
.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	 <meta charset="iso-8859-1">
   	 <meta http-equiv="X-UA-Compatible" content="IE=edge">
   	 <meta name="viewport" content="width=device-width, initial-scale=1">
.
.
.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med decimalpunkt

Inlägg av lillahuset »

Någon i Redmond?
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med decimalpunkt

Inlägg av SeniorLemuren »

Känner du någon där som man kan fråga. :D Glömde att skriva att jag ändrat i nationella inställningar att punkt skall gälla och talat om för Firefox att USA-engelska kommer först i språklistan. Kan det vara så jävligt så att servern ändra från punkt till komma. Den är ju svenskonfigurerad? mySQL accepterar punk men inte komma som tal så där borde det vara ok.

Det är ju själva faan att Sverige skall ställa till det hela tiden med sina ÅÄÖ komma och invandrare och all annan skit. :doh:
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Problem med decimalpunkt

Inlägg av sodjan »

Vad är det för datatyp på det aktuella fältet?
Om det är en float/real eller vad det heter i MySQL
så finns det ju ingen koppling mellan det du läser in
och det du läser ut, det finns ingen decimalavskiljare
i själva databasen så att säga. Så det beror sedan på
vardera änden vad som används.

Man kan inte se på en float om punkt eller komma användes
vid inläsningen...
H.O
Inlägg: 5716
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Problem med decimalpunkt

Inlägg av H.O »

Det är ju själva faan att Sverige skall ställa till det hela tiden med sina ÅÄÖ komma och invandrare och all annan skit.
Säger han som driver en blog med undertiteln Följ mig på mitt boende i ett nytt land :doh:
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med decimalpunkt

Inlägg av lillahuset »

Jag vet inte om det här kan bidra men i slutet av åttiotalet åkte ett gäng från mitt företag till USA och skulle anpassa ett bildbehandlingssystem åt en kund. De hade använt Excel till massor av saker.
Väl på plats upptäckte de att Excel inte kunde läsa filerna som var sparade på datorer med svensk Excel. Inte heller kunde de få tag på svensk Excel i USA. Vi fick skicka svensk Excel med kurir. Det verkade som om Excel sparade formler som text.
Humor? Vi skrattade inte då men gör det gärna nu.

Jag har skrivit ett antal program för signalbehandling och upptäckt behovet att acceptera både decimalkomma och decimalpunkt i textfilerna. Anledningen är uppenbar.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Problem med decimalpunkt

Inlägg av sodjan »

Visst. Jag tror att det löser sig här också, bara man förstår fenomenet rätt. :-)
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Problem med decimalpunkt

Inlägg av Icecap »

Jag hämtade ett excel-ark från nätet och det var markerat som amerikansk varför det var decimal-punkt istället för decimal-komma. En ändring av de få fält jag skulle fylla i till svensk standard och det var löst.

Det har helt klart med nationella inställning av visning av datum/tid osv. vilket ju kan grundinställas i datorn till t.ex. amerikansk visning.
Användarvisningsbild
Jan Almqvist
Inlägg: 1581
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Problem med decimalpunkt

Inlägg av Jan Almqvist »

Jag trodde inte att formler lagrades tom text, så här skiver MS i specen för BIFF-formatet:

Formulas are stored in a tokenized representation known as "parsed expressions."

https://msdn.microsoft.com/en-us/librar ... 12%29.aspx
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med decimalpunkt

Inlägg av lillahuset »

Jag vet inget om formaten på MS sparade filer. Det enda jag vet är att i slutet av åttiotalet var det skillnad mellan filformaten i svensk och USAnsk Excel.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med decimalpunkt

Inlägg av SeniorLemuren »

sodjan skrev:Vad är det för datatyp på det aktuella fältet?
Om det är en float/real eller vad det heter i MySQL
så finns det ju ingen koppling mellan det du läser in
och det du läser ut, det finns ingen decimalavskiljare
i själva databasen så att säga. Så det beror sedan på
vardera änden vad som används.

Man kan inte se på en float om punkt eller komma användes
vid inläsningen...
I mySQL är det angivet som "decimal(9,2), Nullable"
Eftersom jag kan läsa ut det från databasen direkt in i ett textfält så hanteras det väl som text antar jag. När jag vill lägga ihop flera sådana textfält till ett tal så använder jag funktionen

Kod: Markera allt

Summa =  parseFloat(text1) + parseFloat(text2) osv
Innehåller något av texterna komma i stället för punkt så försvinner decimalerna och endast heltalsdelen blir kvar.

Jag kan naturligtvis lösa problemet relativt enkelt genom att hoppa till en funktion som byter ut kommatecknet mot en punkt så snart värdet i ett fält ändras. Men det vore ju intressant att veta varför problemet uppstår.
Användarvisningsbild
Jan Almqvist
Inlägg: 1581
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Problem med decimalpunkt

Inlägg av Jan Almqvist »

"As a result of the change from string to numeric format for DECIMAL storage,..."

https://dev.mysql.com/doc/refman/5.0/en ... stics.html

Som text eller inte som text verkar bero på version...
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med decimalpunkt

Inlägg av lillahuset »

Sparat som text alltså. Och den stora tröttheten infinner sig.

Kan du anropa en funktion som ersätter komma med punkt? Om det går att anropa ett C-program är det trivialt men det bästa är ju om det finns inbyggt.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med decimalpunkt

Inlägg av SeniorLemuren »

Jo jag fixade det med ett javascript.

Kod: Markera allt

document.newManifestForm3.agentDocTmp.value = document.newManifestForm3.agentDocTmp.value.replace(/,/g, ".");
Men innan det så bytte jag ut Firefox svenska version mot den Engelska och ändrade datorns landsinställning helt till USA. Så nu borde allt Svenskt vara utplånat (förutom att själva Win7 är Svenskt) Men icke sa Nicke. decimalkommat hänger kvar trots att det är lagrat som en punkt. Datorernas underbara värld. Jag hittade att det är en bugg i Win7 just om detta. Gjorde som det stod men inte faan hjälpte det. Så det får bli en javascriptlösning.
hh
Inlägg: 322
Blev medlem: 9 maj 2006, 12:37:32
Ort: Karis, Finland

Re: Problem med decimalpunkt

Inlägg av hh »

Har webbläsaren något med saken att göra?

Det intressanta är väl hur fältet/textboxens innehåll sätts. Och då borde serverns inställningar vara avgörande.

Eller missar jag något?



Tillägg:
Om det här är problemet så verkar sesssion.locale vara en möjlig början (kan inte asp)
Skriv svar