webForumDet fria alternativet

Formatera tal!

4 svar · 326 visningar · startad av Alamartimo

AlamartimoMedlem sedan okt. 2004129 inlägg
#1

Har letat men hittar inget här som jag kan använda mig av eller så fungerar det inte med det jag redan fått hjälp med här av Jawbreaker :)

Har försökt få ut värdet och med hjälp av vbscript formatera värdet men det fungerar inte.
I alla fall har jag den här koden för summering av checkboxar.

{
	var sum = 0;

	for ( var i = 0; i < p_form.elements.length; i++ )
	{
		if ( p_form.elements[i].type == "checkbox" && p_form.elements[i].checked )
			sum += parseFloat( p_form.elements[i].value )
	}

	document.getElementById( "totalSum" ).innerHTML = +sum;
}

Värdet får jag ut med

<div id="totalSum"></div>

Som det är nu så är siffrorna ihop ex 1234567
men jag vill formatera dem så att det blir -1 234 567

Sen om det är någon som vet om det går att få ut värdet så jag kan hantera det med vbscript eller det kanske inte är möjligt??

Tackar på förhand :)

jawbreakerMedlem sedan jan. 2003294 inlägg
#2

Det finns nog en hel del varianter på det du vill göra, men jag skrev ihop en egen funktion nu, bara för att det är kul.
Den är inte direkt hårdtestad om man säger så, but here goes:

function formatNumber( p_num )
{
	var ret = "";

	var a = ( "" + p_num ).split( "." );
	if ( 0 < a.length )
	{
		if ( 0 < a[0].length )
		{
			var tmpStr = "";

			var p = "";
			if ( '-' == a[0].charAt(0) )
			{
				a[0] = a[0].substring( 1, a[0].length );
				p = "-";
			}

			var c = 0;
			for ( var i = a[0].length - 1; i >= 0; i-- )
			{
				if ( 0 < c && 0 == c % 3 )
					tmpStr += " ";
				tmpStr += a[0].charAt(i);
				c++;
			}

			ret = p;
			for ( var i = tmpStr.length - 1; i >= 0; i-- )
			{
				ret += tmpStr.charAt(i);
			}
		}

		if ( a[1] )
			ret += ( "." + a[1] );
	}

	return ret;
}

Och i din andra funktion får du då ändra

document.getElementById( "totalSum" ).innerHTML = sum;

till

document.getElementById( "totalSum" ).innerHTML = formatNumber( sum );
AlamartimoMedlem sedan okt. 2004129 inlägg
#3

Jawbreaker:

Tack för att du tar dig tid :)

Tja nää det funkade inte.

"undefined" står det där jag skriver ut det med

<div id="totalSum"></div>
jawbreakerMedlem sedan jan. 2003294 inlägg
#4

Slarvfel av mig. Så går det när man inte testar det man gör...
Hur som helst har jag uppdaterat funktionen i inlägget ovan, så plocka funktionen därifrån igen.

AlamartimoMedlem sedan okt. 2004129 inlägg
#5

Jawbreaker:

Underbart :) det funkar..

Bugar och bockar

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb