/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
beregning ved hjælp af JavaScript ??
Fra : Is


Dato : 10-11-11 23:09

Hej

Jeg har lagt nogle værdier ind i nogle variabler, og vil gerne lægge dem
sammen - men nogle bliver opfattet som tal og andre som tekst.

jeg kan ikke se nogen forskel på måden indholdet kommer til variablerne.

er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.

mvh Erik

 
 
Chano Andersen (10-11-2011)
Kommentar
Fra : Chano Andersen


Dato : 10-11-11 23:38

Den 10/11/11 23.08, Is skrev:
> Hej
>
> Jeg har lagt nogle værdier ind i nogle variabler, og vil gerne lægge dem
> sammen - men nogle bliver opfattet som tal og andre som tekst.
>
> jeg kan ikke se nogen forskel på måden indholdet kommer til variablerne.

Jeg kunne forstille mig, at det handler om hvad der bruges som decimal
seperator.. Hvis man f.eks. bruger , i stedet for . så kan man i en del
tilfælde risikere det bliver opfattet som tekst.

> er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.

Det du har brug for er typecasting.

Du kan se hvordan det gøre i JavaScript her:
http://www.java-samples.com/showtutorial.php?tutorialid=819

- Chano Andersen


Birger Sørensen (11-11-2011)
Kommentar
Fra : Birger Sørensen


Dato : 11-11-11 01:44

Is sendte dette med sin computer:
> Hej
>
> Jeg har lagt nogle værdier ind i nogle variabler, og vil gerne lægge dem
> sammen - men nogle bliver opfattet som tal og andre som tekst.
>
> jeg kan ikke se nogen forskel på måden indholdet kommer til variablerne.
>
> er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.
>
> mvh Erik

Nu er der ikke noget eksempel, eller en side vi kan se på....
Men almindeligvis er det der kommer fra <input> i forme
tekster/strenge(bogstaver) og ikke værdier(tal).
Og i js er '1'+'1'='11' når det er tekster, der arbejdes med.
brug parseInt() hvis det er heltal eller parseFloat() hvis der er
decimaltal. (decimalkarakteren *skal* være et .)

parseInt('1')+parseInt('1') = 2 (et tal)

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://skippersevent.dk



Is (11-11-2011)
Kommentar
Fra : Is


Dato : 11-11-11 18:16

Den 11-11-2011 01:43, Birger Sørensen skrev:
> Is sendte dette med sin computer:
>> Hej
>>
>> Jeg har lagt nogle værdier ind i nogle variabler, og vil gerne lægge
>> dem sammen - men nogle bliver opfattet som tal og andre som tekst.
>>
>> jeg kan ikke se nogen forskel på måden indholdet kommer til variablerne.
>>
>> er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.
>>
>> mvh Erik
>
> Nu er der ikke noget eksempel, eller en side vi kan se på....
> Men almindeligvis er det der kommer fra <input> i forme
> tekster/strenge(bogstaver) og ikke værdier(tal).
> Og i js er '1'+'1'='11' når det er tekster, der arbejdes med.
> brug parseInt() hvis det er heltal eller parseFloat() hvis der er
> decimaltal. (decimalkarakteren *skal* være et .)
>
> parseInt('1')+parseInt('1') = 2 (et tal)
>
> Birger
>

Det lyder som det er det jeg skal bruge.



jeg sætter værdien ind i en variabel her:

var hundd = document.forms[0].d1.value;

og det er så i gen noget der kommer fra et valg her:

<select size="1" name="d1">

<option value="">Vælg</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
o.s.v.

men hvordan bruger jeg din "opskrift" ??

er det sådan

parseInt('hundd')


mvh Erik

Birger Sørensen (11-11-2011)
Kommentar
Fra : Birger Sørensen


Dato : 11-11-11 19:51

Is har bragt dette til os:
> Den 11-11-2011 01:43, Birger Sørensen skrev:
>> Is sendte dette med sin computer:
>>> Hej
>>>
>>> Jeg har lagt nogle værdier ind i nogle variabler, og vil gerne lægge
>>> dem sammen - men nogle bliver opfattet som tal og andre som tekst.
>>>
>>> jeg kan ikke se nogen forskel på måden indholdet kommer til variablerne.
>>>
>>> er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.
>>>
>>> mvh Erik
>>
>> Nu er der ikke noget eksempel, eller en side vi kan se på....
>> Men almindeligvis er det der kommer fra <input> i forme
>> tekster/strenge(bogstaver) og ikke værdier(tal).
>> Og i js er '1'+'1'='11' når det er tekster, der arbejdes med.
>> brug parseInt() hvis det er heltal eller parseFloat() hvis der er
>> decimaltal. (decimalkarakteren *skal* være et .)
>>
>> parseInt('1')+parseInt('1') = 2 (et tal)
>>
>> Birger
>>
>
> Det lyder som det er det jeg skal bruge.
>
>
>
> jeg sætter værdien ind i en variabel her:
>
> var hundd = document.forms[0].d1.value;
>
> og det er så i gen noget der kommer fra et valg her:
>
> <select size="1" name="d1">
>
> <option value="">Vælg</option>
> <option value="1">1</option>
> <option value="2">2</option>
> <option value="3">3</option>
> <option value="4">4</option>
> <option value="5">5</option>
> <option value="6">6</option>
> o.s.v.
>
> men hvordan bruger jeg din "opskrift" ??
>
> er det sådan
>
> parseInt('hundd')
>
>
> mvh Erik

Det skulle jeg mene ^^

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://skippersevent.dk



Is (11-11-2011)
Kommentar
Fra : Is


Dato : 11-11-11 22:39

Den 11-11-2011 19:50, Birger Sørensen skrev:
>> er det sådan
>>
>> parseInt('hundd')
>>
>>
>> mvh Erik
>
> Det skulle jeg mene ^^
>
> Birger
>

Tak for hjælpen

det ser ud til at virke -

mvh Erik


Lasse Reichstein Nie~ (11-11-2011)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 11-11-11 22:34

=?ISO-8859-15?Q?Birger_S=F8rensen?= <sdc@bbsorensen.com> writes:

> brug parseInt() hvis det er heltal eller parseFloat() hvis der er
> decimaltal. (decimalkarakteren *skal* være et .)
>
> parseInt('1')+parseInt('1') = 2 (et tal)

Brug hellere "Number":
Number('1') + Number('1') == 2;
Hvis du bruger parseInt anbefales det at man giver det andet argument med,
altså: parseInt('1', 10).
Ellers kan nogle versioner af parseInt finde på at tolke fx "012" som et
oktalt tal.
Båda parseInt og parseFloat ignorerer fejlagtige tegn i slutningen af
input, hvilket kan maskere fejl, fx. parseInt("1xyz") giver 1.

Altså, brug Number til at konvertere en streng til et tal. Den giver NaN
hvis det ikke er muligt i stedet for at ignorere skrammel i slutningen af
strengen.
Man kan også bruge foranstillet plus, altså: +"1" er det samme some
Number("1").

/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Is (12-11-2011)
Kommentar
Fra : Is


Dato : 12-11-11 00:53

Den 11-11-2011 22:33, Lasse Reichstein Nielsen skrev:
> =?ISO-8859-15?Q?Birger_S=F8rensen?=<sdc@bbsorensen.com> writes:
>
>> brug parseInt() hvis det er heltal eller parseFloat() hvis der er
>> decimaltal. (decimalkarakteren *skal* være et .)
>>
>> parseInt('1')+parseInt('1') = 2 (et tal)
>
> Brug hellere "Number":
> Number('1') + Number('1') == 2;
> Hvis du bruger parseInt anbefales det at man giver det andet argument med,
> altså: parseInt('1', 10).
> Ellers kan nogle versioner af parseInt finde på at tolke fx "012" som et
> oktalt tal.
> Båda parseInt og parseFloat ignorerer fejlagtige tegn i slutningen af
> input, hvilket kan maskere fejl, fx. parseInt("1xyz") giver 1.
>
> Altså, brug Number til at konvertere en streng til et tal. Den giver NaN
> hvis det ikke er muligt i stedet for at ignorere skrammel i slutningen af
> strengen.
> Man kan også bruge foranstillet plus, altså: +"1" er det samme some
> Number("1").
>
> /L

Tak for svar - det bruger jeg i stedet for.

Er der en nem måde at kontrollere om man har at gøre med noget der
opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen


mvh Erik

Chano Andersen (12-11-2011)
Kommentar
Fra : Chano Andersen


Dato : 12-11-11 11:40

Den 12/11/11 00.52, Is skrev:
> Er der en nem måde at kontrollere om man har at gøre med noget der
> opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen

if (Number("ikke et nummer") != "NaN") {
   alert("Ikke et tal");
}

Burde kunne gøre det. Har dog ikke lige testet.

- Chano Andersen

Birger Sørensen (12-11-2011)
Kommentar
Fra : Birger Sørensen


Dato : 12-11-11 12:31

Chano Andersen udtrykte præcist:
> Den 12/11/11 00.52, Is skrev:
>> Er der en nem måde at kontrollere om man har at gøre med noget der
>> opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen
>
> if (Number("ikke et nummer") != "NaN") {
>    alert("Ikke et tal");
> }
>
> Burde kunne gøre det. Har dog ikke lige testet.
>
> - Chano Andersen

Skal nok være ==

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://skippersevent.dk



Chano Andersen (12-11-2011)
Kommentar
Fra : Chano Andersen


Dato : 12-11-11 16:20

Den 12/11/11 12.31, Birger Sørensen skrev:
> Chano Andersen udtrykte præcist:
>> Den 12/11/11 00.52, Is skrev:
>>> Er der en nem måde at kontrollere om man har at gøre med noget der
>>> opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen
>>
>> if (Number("ikke et nummer") != "NaN") {
>> alert("Ikke et tal");
>> }
>>
>> Burde kunne gøre det. Har dog ikke lige testet.
>>
>> - Chano Andersen
>
> Skal nok være ==

Sandt, eller

alert("Et tal");

Tror jeg tænkte en smule anderledes end jeg skrev. ;)

- Chano Andersen

Lasse Reichstein Nie~ (12-11-2011)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 12-11-11 13:52

Is <erikisager@mail.dk> writes:

> Er der en nem måde at kontrollere om man har at gøre med noget der
> opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen

Du kan bruge "typeof"-operatoren. Den tager en værdi og giver en streng
der repræsenterer typen på værdien.
typeof 2 => "number"
typeof "ab" => "string"
typeof true => "boolean"
typeof {} => "object"
typeof [] => "object" - arrays er bare objekter.
typeof undefined => "undefined"
typeof null => "object" - pas på den :)
typeof function(){} => "function" - for objekter der kan kaldes.

Så i dit tilfælde kan du lave kode:
if (typeof a != "number") {
a = Number(a);
}
men da Number ikke gør noget ved værdier der allerede er tal, så er det
det samme som:
a = Number(a);

Held og lykke
/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Is (12-11-2011)
Kommentar
Fra : Is


Dato : 12-11-11 17:32

Den 12-11-2011 13:52, Lasse Reichstein Nielsen skrev:
> Is<erikisager@mail.dk> writes:
>
>> Er der en nem måde at kontrollere om man har at gøre med noget der
>> opfattes som tekst eller tal ??? ud over at prøve at lægge dem sammen
>
> Du kan bruge "typeof"-operatoren. Den tager en værdi og giver en streng
> der repræsenterer typen på værdien.
> typeof 2 => "number"
> typeof "ab" => "string"
> typeof true => "boolean"
> typeof {} => "object"
> typeof [] => "object" - arrays er bare objekter.
> typeof undefined => "undefined"
> typeof null => "object" - pas på den :)
> typeof function(){} => "function" - for objekter der kan kaldes.
>
> Så i dit tilfælde kan du lave kode:
> if (typeof a != "number") {
> a = Number(a);
> }
> men da Number ikke gør noget ved værdier der allerede er tal, så er det
> det samme som:
> a = Number(a);
>
> Held og lykke
> /L

ser spændende ud !! er der noget med dato ??

og evt hvordan man gør det til en dato
Jeg har kigget lidt her uden af få held med det
http://www.w3schools.com/jsref/jsref_obj_date.asp

mvh Erik

Martin Larsen (14-11-2011)
Kommentar
Fra : Martin Larsen


Dato : 14-11-11 10:53

Is wrote:

> er der en måde hvormed jeg kan tvinge dem til at blive opfattet som tal.

Der er allerede flere udmærkede løsninger, men et velfungerende
cowboytrick er at gange med 1:

"1"+"2" = "12"

"1" * 1 + "2" * 1 = 3

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste