<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS: Округление по модулю]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8321</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8321&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS: Округление по модулю».]]></description>
		<lastBuildDate>Sun, 19 May 2013 10:57:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[JS: Округление по модулю]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72254#p72254</link>
			<description><![CDATA[<p>На страницах MDN есть <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/ceil#Example:_Decimal_adjustment">пример десятичного округления чисел по степеням 10</a>. Недавно на глаза попался фрагмент кода java, где реализовано округление по произвольному числу. Реализовал на javascript. Публикую, вдруг кому-то понадобится. </p><p>Обсуждение в теме <a href="http://forum.script-coding.com/viewtopic.php?id=8312">JS: Округление по модулю (обсуждение)</a></p><div class="codebox"><pre><code>

(function()
{
    var names = [&#039;floor&#039;, &#039;ceil&#039;, &#039;round&#039;];

    for (var i = 0; i &lt; names.length; i++) {
        var name = names[i];
        (function(name, method)
        {
            //Math[name] = 
            Math[name + &#039;Modulo&#039;] = 
            function(value, modulo)
            {
                return arguments.length &lt; 2 
                    ? method(value) 
                    : method(value / modulo) * modulo;
            };
        })(name, Math[name]);
    }
})();

// Floor
Math.floorModulo(5, 5); // 5
Math.floorModulo(6, 5); // 5
Math.floorModulo(7, 5); // 5
Math.floorModulo(8, 5); // 5
Math.floorModulo(9, 5); // 5
Math.floorModulo(10, 5); // 10

// Ceil
Math.ceilModulo(5, 5); // 5
Math.ceilModulo(6, 5); // 10
Math.ceilModulo(7, 5); // 10
Math.ceilModulo(8, 5); // 10
Math.ceilModulo(9, 5); // 10
Math.ceilModulo(10, 5); // 10

// Round
Math.roundModulo(5, 5); // 5
Math.roundModulo(6, 5); // 5
Math.roundModulo(7, 5); // 5
Math.roundModulo(8, 5); // 10
Math.roundModulo(9, 5); // 10
Math.roundModulo(10, 5); // 10

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 19 May 2013 10:57:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72254#p72254</guid>
		</item>
	</channel>
</rss>
