如何通过检查值添加逗号和小数点
Posted
技术标签:
【中文标题】如何通过检查值添加逗号和小数点【英文标题】:How to add commas and round decimals by checking value 【发布时间】:2018-02-18 02:32:17 【问题描述】:我正在构建一个个人应用程序,我可以在其中关注我目前持有和关注的加密货币。我注意到的问题是价格后面的小数。一种货币通常最多有 2 位小数,但 Coinmarketcap 的 API 会根据价格给我更多。
以下是我从 API 获得的价值的示例,以及我实际希望如何显示价格。大于 1000 的值将得到一个逗号,并且没有小数。
$950194.0 -> $950,194 $81851.6 -> $81,852 $4364.97 -> $4,365 $326.024 -> $326.02 $35.0208 -> $35.02 $4.50548 -> $4.51 $0.0547128 -> $0.0547128
我以前从未尝试过这样的事情,所以我真的不知道如何开始。尝试使用 round() 和 numberFormat(),但不能像我在上面的示例中想要的那样。
【问题讨论】:
查看***.com/questions/20413672/… 【参考方案1】:您可以使用money_format
让事情变得更简单。但是,问题在于您想要什么precision
。您必须自己弄清楚,因为我无法从您的示例中找到模式。然而,我用round
和money_format
为你编写了简单的函数。剩下的就是在每种情况下将precision
调整到您想要的位置。
<?php
function my_money_format($number, $precision=0)
$number = preg_replace( '/[^0-9.,]/', '', $number); // clean the input
$number = round($number, $precision);
$format = '%.' . $precision . 'n';
setlocale(LC_MONETARY, 'en_US'); // set money format to US to use $
return money_format($format, $number);
echo my_money_format('$950194.0', 0); // $950,194
echo "\n";
echo my_money_format('$81851.6', 0); // $81,852
echo "\n";
echo my_money_format('$4364.97', 0); // $4,365
echo "\n";
echo my_money_format('$326.024', 2); // $326.02
echo "\n";
echo my_money_format('$35.0208', 2); // $35.02
echo "\n";
echo my_money_format('$4.50548', 2); // $4.51
echo "\n";
echo my_money_format('$0.0547128', 7); // $0.0547128
echo "\n";
【讨论】:
以上是关于如何通过检查值添加逗号和小数点的主要内容,如果未能解决你的问题,请参考以下文章
添加逗号时如何更新此 jQuery 插件/正则表达式以忽略小数?
将十进制转换为小数点后两个零的字符串,和逗号? C# [重复]