/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
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
Tusindtalsseparation i Java?
Fra : findovia
Vist : 1473 gange
200 point
Dato : 05-12-02 09:32

Jeg har lavet en lille prisberegning ved at multiplicere et indtastet areal med en kvadratmeterpris. Resultatet vises i et inputfelt. Det ser sådan ud:
<INPUT TYPE="text" NAME="prisea" SIZE=6 >

Det fungerer for så vidt godt nok; men jeg vil gerne have skrevet resultatet med tusindtalsseparation, altså sådan at f.eks. 678954 skrives som 678.954, da det er lettere at læse. Hvis resultatet bliver på mere end 6 cifre, skal der være punktum igen, altså skal f.eks. 7659817 skrives som 7.659.817.

Mine beregninger kommer aldrig over 7 cifre.

Er der nogen, der kan hjælpe mig med dette?

 
 
Accepteret svar
Fra : hojgard

Modtaget 200 point
Dato : 13-02-03 18:42

Det er måske en fusker-løsning, men det virker
Jeg har ikke testet scriptet igennem, så det kan være det skal justeres...

<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
<!--
function tusindtalsseparator(tal)
{
temp = tal + "";


if (temp.length >= 3 && temp.length <= 6)
{
nyttal = temp.slice(0, temp.length - 3) + "." + temp.slice(temp.length - 3, temp.length);
myform.nyname.value = nyttal;
}
else if (temp.length > 6)
{
nyttal = temp.slice(0, temp.length - 6) + "." + temp.slice(temp.length - 6, temp.length - 3) + "." + temp.slice(temp.length - 3, temp.length);
myform.nyname.value = nyttal;
}
else
   {
myform.nyname.value = temp;
   }
}
//-->
</script>

</head>
<body bgcolor=gray>


<form name="myform">
<input type="text" name="nyname">
</form>

<script language="JavaScript" type="text/javascript">tusindtalsseparator(12345);</script>

</body>
</html>


Kommentar
Fra : findovia


Dato : 13-02-03 19:41

Kære Hojgard,

Jeg er desværre ikke kyndig nok i Java til at kunne omsætte dit forslag til min situation.

Dit script viser 12345 som 12.345; men det tal er jo skrevet ind i html'en.
Jeg skal have scriptet til at vise resultatet af en beregning, hvor et antal kvadratmetre skrives ind i et felt på skærmen og ganges med en kvadratmeterpris, som står i min html. Resultatet skal så vises i et andet felt på skærmen (med tusindtalsseparation).

Du kan se på www.bsbhuse.dk under menupunktet PRISER, hvad jeg mener.

Mvh.
Hans

Kommentar
Fra : hojgard


Dato : 14-02-03 12:56

Hej Hans,

Så har jeg rettet det til, så det passer ind i din kode. Koden nedenunder er kun scriptet dvs. du skal erstatte det du har mellem <script> og </script> med den kode jeg har lavet.
Du skal nok lige teste det inden du lægger det ud på din side., da jeg ikke selv har testet det så meget.
Desuden har jeg lavet det sådan at prisen bliver afrundet, så der ikke kommer øre med.


<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
function fido (form) {
form.prisea.value = tusindtalsseparator( form.areal.value * 1348 );
form.priseb.value = tusindtalsseparator( form.areal.value * 822 );
form.prisda.value = tusindtalsseparator( form.areal.value * 1829 );
form.prisdb.value = tusindtalsseparator( form.areal.value * 763 );
form.prisma.value = tusindtalsseparator( form.areal.value * 2162 );
form.prismb.value = tusindtalsseparator( form.areal.value * 714 );
form.prisha.value = tusindtalsseparator( form.areal.value * 3150 );
form.prishb.value = tusindtalsseparator( form.areal.value * 717 );

}


function tusindtalsseparator(tal)
{
temp = Math.floor(tal) + "";

if (temp >= 999 && temp.length <= 6)
{
nyttal = temp.slice(0, temp.length - 3) + "." + temp.slice(temp.length - 3, temp.length);
return nyttal;
}
else if (temp.length > 6)
{
nyttal = temp.slice(0, temp.length - 6) + "." + temp.slice(temp.length - 6, temp.length - 3) + "." + temp.slice(temp.length - 3, temp.length);
return nyttal;
}
else
{
return temp;
}
}


// End -->
</SCRIPT>

Godkendelse af svar
Fra : findovia


Dato : 14-02-03 13:30

Hej Hojgard!

Hurrah! Hurrah! Hurrah!

Det er jo helt fantastisk. Jeg har lagt det op hos Nette, og det virker perfekt.
Tusind tak ska' du ha'.

Der er kun en lille ting, jeg vil spørge dig om, og det er, om det også vil være muligt at højrestille tallene i formfelterne.

Med mine bedste hilsner.
Hans

Kommentar
Fra : hojgard


Dato : 14-02-03 15:14

Hej Hans,

Godt at høre du kunne bruge det

Du kan let højrestille alle tallene i formfelterne ved at indsætte denne kode mellem <head> og </head>:

<style type="text/css">
<!--
input {
text-align: right;
}
-->
</style>


Kommentar
Fra : hojgard


Dato : 14-02-03 15:14

Hej Hans,

Godt at høre du kunne bruge det

Du kan let højrestille alle tallene i formfelterne ved at indsætte denne kode mellem <head> og </head>:

<style type="text/css">
<!--
input {
text-align: right;
}
-->
</style>


Kommentar
Fra : findovia


Dato : 14-02-03 16:20

Hej Hojgard,

Det virker også perfekt!
Hvor har dog du lært disse ting henne?

Atter tak.

Hans

Kommentar
Fra : hojgard


Dato : 14-02-03 17:56

Jeg har set du har fået det til at køre

Webprogrammering er selvlært. Der er heldigvis mange gode muligheder for at lære den slags på nettet... f.eks. her på Kandu.dk.

Hilsen
Højgaard

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste