<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nobigwords.ntxt.net &#187; numberFormat</title>
	<atom:link href="http://nobigwords.ntxt.net/tag/numberformat/feed/" rel="self" type="application/rss+xml" />
	<link>http://nobigwords.ntxt.net</link>
	<description>not too big words not only about web</description>
	<lastBuildDate>Thu, 08 Dec 2011 23:35:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>formatowanie liczb w actionscript, cz.2</title>
		<link>http://nobigwords.ntxt.net/2009/01/12/formatowanie-liczb-w-actionscript-cz2/</link>
		<comments>http://nobigwords.ntxt.net/2009/01/12/formatowanie-liczb-w-actionscript-cz2/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 09:37:47 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[tekst]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[całkowita]]></category>
		<category><![CDATA[formatNumber]]></category>
		<category><![CDATA[formatowanie]]></category>
		<category><![CDATA[klasa]]></category>
		<category><![CDATA[liczba]]></category>
		<category><![CDATA[metoda]]></category>
		<category><![CDATA[number]]></category>
		<category><![CDATA[numberFormat]]></category>
		<category><![CDATA[zmiennoprzecinkowa]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/?p=70</guid>
		<description><![CDATA[Przyjrzawszy się po raz drugi problemowi, popełniłem poniższą metodę, zastępując poprzednią. Trochę inne podejście, wszystko objaśnione w kodzie. Dla dobra publicznego publikuję: /** * metoda formatuje liczbę z dokładnością zadaną przez @resolution, * oddzielając tysiące znakiem z @thouSep a część ułamkową znakiem * z @decPoint. Na końcu dodaje jednostkę @unit * Np.: * Format.Number(123.456, ' [...]]]></description>
			<content:encoded><![CDATA[<p>
Przyjrzawszy się po raz drugi problemowi, popełniłem poniższą metodę, zastępując poprzednią.<br />
Trochę inne podejście, wszystko objaśnione w kodzie. Dla dobra publicznego publikuję:
</p>
<pre>
		/**
		 * metoda formatuje liczbę z dokładnością zadaną przez @resolution,
		 * oddzielając tysiące znakiem z @thouSep a część ułamkową znakiem
		 * z @decPoint. Na końcu dodaje jednostkę @unit
		 * Np.:
		 * Format.Number(123.456, ' zł', 0.1) zwraca '123,5 zł'
		 * Format.Number(123.456, ' zł', 1) zwraca '123 zł'
		 * Format.Number(123.456, ' m', 10) zwraca '120 m'
		 */
		public static function number(
			v:			Number,
			unit:		String = '',
			resolution:	Number = 1,
			decPoint:	String = ',',
			thouSep:	String = ' '
		):String
		{
			var r:		String = '';
			var rDec:	String = '';
			var rInt:	String = '';
			var i:		int;
			var rIntTmp:String;
			var len: 	int;

			v = Math.round(v / resolution) * resolution;
			r = v.toString();
			// pozycja kropki dziesiętnej
			var decPointPos:int = r.lastIndexOf('.');

			// część całkowita
			if(decPointPos > -1)
				rIntTmp	= r.substr(0, decPointPos);
			else
				rIntTmp = r;

			len	= rIntTmp.length;
			// przepisujemy po 3 cyfry, dodając separator
			while(len > 3){
				rInt = thouSep + rIntTmp.substr(len - 3, len) + rInt;
				rIntTmp = rIntTmp.substr(0, len - 3);
				len = rIntTmp.length;
			}
			rInt = rIntTmp + rInt;

			// część ułamkowa
			if(resolution < 1) {
				// liczba znaków w części ułamkowej powinna być taka jak długość części ułamkowej @resolution
				var decLength = (resolution - Math.floor(resolution)).toString().length - 2;
				// część ułamkowa
				if(decPointPos > -1){
					var x:int = decPointPos + 1 + decLength;
					rDec = r.substring(decPointPos + 1, decPointPos + 1 + decLength);
				}
				// dodajemy zera na końcu, jeśli trzeba
				var zerosCount:int = decLength - rDec.length;
				for(i = 0; i < zerosCount; i++) rDec += '0';
				rDec = decPoint + rDec;
			}
			r = rInt + rDec + unit;
			return r;
		}
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2009/01/12/formatowanie-liczb-w-actionscript-cz2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>formatowanie liczb w actionscripcie, numberFormat</title>
		<link>http://nobigwords.ntxt.net/2008/03/12/formatowanie-liczb-w-actionscripcie-numberformat/</link>
		<comments>http://nobigwords.ntxt.net/2008/03/12/formatowanie-liczb-w-actionscripcie-numberformat/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 18:39:44 +0000</pubDate>
		<dc:creator>Piotr Tomaszewski</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[formatNumber]]></category>
		<category><![CDATA[formatowanie liczb]]></category>
		<category><![CDATA[funkcja]]></category>
		<category><![CDATA[kwota]]></category>
		<category><![CDATA[liczba]]></category>
		<category><![CDATA[liczby]]></category>
		<category><![CDATA[metoda]]></category>
		<category><![CDATA[numberFormat]]></category>
		<category><![CDATA[słownie]]></category>
		<category><![CDATA[tysiąc]]></category>
		<category><![CDATA[waluta]]></category>

		<guid isPermaLink="false">http://nobigwords.ntxt.net/2008/03/12/formatowanie-liczb-w-actionscripcie-numberformat/</guid>
		<description><![CDATA[Jeszcze nie dokończona, ale pomyślałem że się podzielę. Nie znalazłem zwartego sposobu na formatowanie liczb w Actionscript 3, a potrzebne mi było, więc jest. Trzeba dokończyć część poprzecinkową, zmienić parametry z lokalnych na zewnętrzne, ale z tym sobie każdy poradzi. Cała zabawa polega na wyszukaniu wzorca z 4 kolejnych cyfr i separatora, a na dobry [...]]]></description>
			<content:encoded><![CDATA[<p>Jeszcze nie dokończona, ale pomyślałem że się podzielę. Nie znalazłem zwartego sposobu na formatowanie liczb w Actionscript 3, a potrzebne mi było, więc jest. Trzeba dokończyć część poprzecinkową, zmienić parametry z lokalnych na zewnętrzne, ale z tym sobie każdy poradzi. Cała zabawa polega na wyszukaniu wzorca z 4 kolejnych cyfr i separatora, a na dobry początek dodajemy ten separator na końcu części całkowitej. Potem podmieniamy znaleziony kawałek na ciąg: cyfra, separator, 3 cyfry i szukamy znowu. Przeczesujemy w ten sposób liczbę od końca to początku, aż nie zostanie nic do dodania. Prawą, czyli ułamkową część trzeba potraktować zaokrąglaniem&#8230; (TODO :)</p>
<pre>
public static function formatNumber(n:Number):String
{
	var s:String = n.toString();
	var parts:Array = s.split('.');
	var result:String;
	var precision:int = 2;
	var separaTys:String = Lang.g.separaTys;
	var decimalPoint:String = Lang.g.decimalPoint;
	var pattern:RegExp = new RegExp("(\\d)(\\d\\d\\d)\\" + separaTys, '');
	parts[0] += separaTys;

	while(parts[0].search(pattern) &gt; -1) {
		parts[0] = parts[0].replace(pattern, '$1' + separaTys + '$2' + separaTys);
	}
	parts[0] = parts[0].slice(0,-1);
	//if(parts.length &lt; 2) parts[1] = '';
	//while(parts[1].length &lt; precision) parts[1] += '0';
	//if(parts[1].length &gt; precision)
	//TODO: obsługa części po przecinku

	return parts[0];
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://nobigwords.ntxt.net/2008/03/12/formatowanie-liczb-w-actionscripcie-numberformat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

