Thinkphp中的大数值中英文互译,另附JS版本的number_format函数

      发布在:后端技术      评论:0 条评论
<p>Thinkphp中的大数值中英文互译,另附JS版本的number_format函数</p><pre style="background-color:#262e37;color:#ffffff;font-family:&#39;Consolas&#39;;font-size:11.3pt;"><span style="color:#5b7773;background-color:#191f26;">/**<br/></span><span style="color:#5b7773;background-color:#191f26;"> * number_format<br/></span><span style="color:#5b7773;background-color:#191f26;"> * </span><span style="color:#75715e;background-color:#191f26;">@param </span><span style="color:#5b7773;background-color:#191f26;">number </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">传进来的数</span><span style="color:#5b7773;background-color:#191f26;">,<br/></span><span style="color:#5b7773;background-color:#191f26;"> * </span><span style="color:#75715e;background-color:#191f26;">@param </span><span style="color:#5b7773;background-color:#191f26;">bit </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">保留的小数位</span><span style="color:#5b7773;background-color:#191f26;">,</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">默认保留两位小数</span><span style="color:#5b7773;background-color:#191f26;">,<br/></span><span style="color:#5b7773;background-color:#191f26;"> * </span><span style="color:#75715e;background-color:#191f26;">@param </span><span style="color:#5b7773;background-color:#191f26;">sign </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">为整数位间隔符号</span><span style="color:#5b7773;background-color:#191f26;">,</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">默认为空格<br/></span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;"> </span><span style="color:#5b7773;background-color:#191f26;">* </span><span style="color:#75715e;background-color:#191f26;">@param </span><span style="color:#5b7773;background-color:#191f26;">gapnum </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">为整数位每几位间隔</span><span style="color:#5b7773;background-color:#191f26;">,</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">默认为</span><span style="color:#5b7773;background-color:#191f26;">3</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">位一隔<br/></span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;"> </span><span style="color:#5b7773;background-color:#191f26;">* </span><span style="color:#75715e;background-color:#191f26;">@type </span><span style="color:#5b7773;background-color:#191f26;">arguments</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">的作用:</span><span style="color:#5b7773;background-color:#191f26;">arguments[0] == number(</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">之一</span><span style="color:#5b7773;background-color:#191f26;">)<br/></span><span style="color:#5b7773;background-color:#191f26;"> */</span><span style="color:#5b7773;"><br/></span><span style="color:#f92672;">function </span><span style="font-style:italic;">number_format</span>(<span style="color:#fd971f;font-style:italic;">number</span>,<span style="color:#fd971f;font-style:italic;">bit</span>,<span style="color:#fd971f;font-style:italic;">sign</span>,<span style="color:#fd971f;font-style:italic;">gapnum</span>){<br/> <span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">设置接收参数的默认值</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; </span><span style="color:#f92672;">var </span><span style="color:#64a2a2;">bit &nbsp; &nbsp;</span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">1</span>] <span style="color:#f92672;">? </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">1</span>] <span style="color:#f92672;">: </span><span style="color:#ae81ff;">2 </span>;<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">sign &nbsp; </span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">2</span>] <span style="color:#f92672;">? </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">2</span>] <span style="color:#f92672;">: </span><span style="color:#e6db74;">&#39; &#39; </span>;<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">gapnum </span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">3</span>] <span style="color:#f92672;">? </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">arguments</span>[<span style="color:#ae81ff;">3</span>] <span style="color:#f92672;">: </span><span style="color:#ae81ff;">3 </span>;<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">str &nbsp; &nbsp;</span><span style="color:#f92672;">= </span><span style="color:#e6db74;">&#39;&#39; </span>;<br/><br/> <span style="color:#fd971f;font-style:italic;">number &nbsp; &nbsp; </span><span style="color:#f92672;">= </span><span style="color:#fd971f;font-style:italic;">number</span>.toFixed(<span style="color:#64a2a2;">bit</span>);<span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">格式化</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; </span><span style="color:#660e7a;font-weight:bold;">realnum &nbsp; &nbsp;</span><span style="color:#f92672;">= </span><span style="color:#fd971f;font-style:italic;">number</span>.<span style="color:#4ac60a;">split</span>(<span style="color:#e6db74;">&#39;.&#39;</span>)[<span style="color:#ae81ff;">0</span>];<span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">整数位</span><span style="color:#5b7773;background-color:#191f26;">(</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">使用小数点分割整数和小数部分</span><span style="color:#5b7773;background-color:#191f26;">)</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; </span><span style="color:#660e7a;font-weight:bold;">decimal &nbsp; &nbsp;</span><span style="color:#f92672;">= </span><span style="color:#fd971f;font-style:italic;">number</span>.<span style="color:#4ac60a;">split</span>(<span style="color:#e6db74;">&#39;.&#39;</span>)[<span style="color:#ae81ff;">1</span>];<span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">小数位</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; </span><span style="color:#660e7a;font-weight:bold;">realnumarr </span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;">realnum</span>.<span style="color:#4ac60a;">split</span>(<span style="color:#e6db74;">&#39;&#39;</span>);<span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">将整数位逐位放进数组</span><span style="color:#5b7773;background-color:#191f26;"> [&quot;1&quot;, &quot;2&quot;, &quot;3&quot;, &quot;4&quot;, &quot;5&quot;, &quot;6&quot;]</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; </span><span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">把整数部分从右往左拼接,每</span><span style="color:#5b7773;background-color:#191f26;">bit</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">位添加一个</span><span style="color:#5b7773;background-color:#191f26;">sign</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">符号</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; </span><span style="color:#f92672;">for</span>(<span style="color:#f92672;">var </span><span style="color:#64a2a2;">i</span><span style="color:#f92672;">=</span><span style="color:#ae81ff;">1</span>;<span style="color:#64a2a2;">i</span><span style="color:#f92672;">&lt;=</span><span style="color:#660e7a;font-weight:bold;">realnumarr</span>.<span style="color:#660e7a;font-weight:bold;">length</span>;<span style="color:#64a2a2;">i</span><span style="color:#f92672;">++</span>){<br/> <span style="color:#64a2a2;">str </span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;">realnumarr</span>[<span style="color:#660e7a;font-weight:bold;">realnumarr</span>.<span style="color:#660e7a;font-weight:bold;">length</span><span style="color:#f92672;">-</span><span style="color:#64a2a2;">i</span>] <span style="color:#f92672;">+ </span><span style="color:#64a2a2;">str </span>;<br/> <span style="color:#f92672;">if</span>(<span style="color:#64a2a2;">i</span><span style="color:#f92672;">%</span><span style="color:#64a2a2;">gapnum </span><span style="color:#f92672;">== </span><span style="color:#ae81ff;">0</span>){<br/> <span style="color:#64a2a2;">str </span><span style="color:#f92672;">= </span><span style="color:#64a2a2;">sign</span><span style="color:#f92672;">+</span><span style="color:#64a2a2;">str</span>;<span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">每隔</span><span style="color:#5b7773;background-color:#191f26;">gapnum</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">位前面加指定符号</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp; &nbsp;</span>}<br/> }<br/><br/> <span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">当遇到</span><span style="color:#5b7773;background-color:#191f26;"> gapnum </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">的倍数的时候,会出现比如</span><span style="color:#5b7773;background-color:#191f26;"> &quot;,123&quot;,</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">这种情况,所以要去掉最前面的</span><span style="color:#5b7773;background-color:#191f26;"> sign</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; </span><span style="color:#64a2a2;">str </span><span style="color:#f92672;">= </span>(<span style="color:#660e7a;font-weight:bold;">realnum</span>.<span style="color:#660e7a;font-weight:bold;">length</span><span style="color:#f92672;">%</span><span style="color:#64a2a2;">gapnum</span><span style="color:#f92672;">==</span><span style="color:#ae81ff;">0</span>) <span style="color:#f92672;">? </span><span style="color:#64a2a2;">str</span>.<span style="color:#4ac60a;">substr</span>(<span style="color:#ae81ff;">1</span>) <span style="color:#f92672;">: </span><span style="color:#64a2a2;">str</span>;<br/> <span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">重新拼接实数部分和小数位</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; </span><span style="color:#660e7a;font-weight:bold;">realnum </span><span style="color:#f92672;">= </span><span style="color:#64a2a2;">str</span><span style="color:#f92672;">+</span><span style="color:#e6db74;">&#39;.&#39;</span><span style="color:#f92672;">+</span><span style="color:#660e7a;font-weight:bold;">decimal</span>;<br/> <span style="color:#f92672;">return </span><span style="color:#660e7a;font-weight:bold;">realnum</span>;<br/>}</pre><pre style="background-color:#262e37;color:#ffffff;font-family:&#39;Consolas&#39;;font-size:11.3pt;"><span style="color:#f92672;">if</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]){<br/>&lt;?<span style="color:#c32867;font-weight:bold;">php </span><span style="color:#a6e22e;">if</span>(<span style="color:#c32867;font-weight:bold;">LANG_SET</span><span style="color:#e6db74;font-weight:bold;">==&#39;zh-cn&#39;</span>){ <span style="color:#f92672;">?&gt;<br/></span><span style="color:#f92672;"><br/></span><span style="color:#f92672;"> &nbsp; &nbsp; &nbsp;if</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">&gt;</span><span style="color:#ae81ff;">10000</span>){<br/> <span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">=</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">/</span><span style="color:#ae81ff;">10000</span>).<span style="color:#4ac60a;">toFixed</span>(<span style="color:#ae81ff;">2</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&quot;</span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">万</span><span style="color:#e6db74;">&quot;<br/></span><span style="color:#e6db74;"> &nbsp; &nbsp; &nbsp;</span>}<br/> <span style="color:#f92672;">if</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">&gt;</span><span style="color:#ae81ff;">100000000</span>){<br/> <span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">=</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">/</span><span style="color:#ae81ff;">100000000</span>).<span style="color:#4ac60a;">toFixed</span>(<span style="color:#ae81ff;">2</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&quot;</span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">亿</span><span style="color:#e6db74;">&quot;<br/></span><span style="color:#e6db74;"> &nbsp; &nbsp; &nbsp;</span>}<br/> &lt;?<span style="color:#c32867;font-weight:bold;">php </span>}<span style="color:#c32867;font-weight:bold;">else</span>{ <span style="color:#f92672;">?&gt;<br/></span><span style="color:#f92672;"><br/></span><span style="color:#f92672;"><br/></span><span style="color:#f92672;"> &nbsp; &nbsp; &nbsp;if</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">&gt;</span><span style="color:#ae81ff;">1000000000000</span>){<br/> <span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">=</span><span style="font-style:italic;">number_format</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">/</span><span style="color:#ae81ff;">1000000000000</span>,<span style="color:#ae81ff;">2</span>,<span style="color:#e6db74;">&#39;,&#39;</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&quot; billion&quot;<br/></span><span style="color:#e6db74;"> &nbsp; &nbsp; &nbsp;</span>}<span style="color:#f92672;">else if</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">&gt;</span><span style="color:#ae81ff;">1000000</span>){<br/> <span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">=</span><span style="font-style:italic;">number_format</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">/</span><span style="color:#ae81ff;">1000000</span>,<span style="color:#ae81ff;">2</span>,<span style="color:#e6db74;">&#39;,&#39;</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&quot; million&quot;<br/></span><span style="color:#e6db74;"> &nbsp; &nbsp; &nbsp;</span>}<span style="color:#f92672;">else</span>{<br/> <span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]<span style="color:#f92672;">=</span><span style="font-style:italic;">number_format</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>],<span style="color:#ae81ff;">2</span>,<span style="color:#e6db74;">&#39;,&#39;</span>);<br/> }<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">console</span>.<span style="color:#4ac60a;">log</span>(<span style="color:#fd971f;font-style:italic;">data</span>[<span style="color:#e6db74;">&#39;info&#39;</span>][<span style="color:#e6db74;">&#39;volume&#39;</span>]);<br/><br/> &lt;?<span style="color:#c32867;font-weight:bold;">php </span>} ?&gt;<br/><br/><br/> <span style="color:#660e7a;font-weight:bold;">$</span>(&quot;#<span style="color:#c32867;font-weight:bold;">market_volume</span><span style="color:#e6db74;font-weight:bold;">&quot;).</span><span style="color:#4ac60a;font-weight:bold;">html</span><span style="color:#e6db74;font-weight:bold;">(</span><span style="color:#fd971f;font-style:italic;">data</span><span style="color:#e6db74;font-weight:bold;">[&#39;info&#39;][&#39;volume&#39;]);</span></pre><p><br/></p>
相关文章
热门推荐