我想知道如何检查一个数字是否有一位或两位小数,如果它只有一位小数,例如 12,9,然后用额外的 0 回显该数字,所以它看起来像 12,90。
<?php
$number = '12,9';
if $number //has 2 decimals // {
echo $number; }
else {
echo $number.'0';
}
endif;
?>
我不知道如何正确地做到这一点,任何帮助将不胜感激!谢谢
我想知道如何检查一个数字是否有一位或两位小数,如果它只有一位小数,例如 12,9,然后用额外的 0 回显该数字,所以它看起来像 12,90。
<?php
$number = '12,9';
if $number //has 2 decimals // {
echo $number; }
else {
echo $number.'0';
}
endif;
?>
我不知道如何正确地做到这一点,任何帮助将不胜感激!谢谢
如果您的输入是.
(点)分隔的小数,您可以使用number_format()
:
number_format('12.9', 2);
或者,NumberFormatter
如果您需要支持多个语言环境或使用逗号作为小数点分隔符的数字,则可以使用该类。如:
$formatter = new NumberFormatter('de_DE', NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, 2);
$formatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo $formatter->format($formatter->parse('12,9'));
注意:使用NumberFormatter
需要intl
扩展名。它可以通过简单的sudo apt-get install php5-intl
.
你需要的是 number_format 函数 http://www.php.net/manual/en/function.number-format.php
由于 PHP 不是严格类型的,你可以这样:
$parts = explode(",", $number);
$num_decimals = strlen($parts[1]);
if ($num_decimals == 2) //has 2 decimals // {
echo $number;
} else {
echo $number.'0';
}
如果您确定数字始终像您发布的那样格式化,那么您可以这样做:
number_format(str_replace(',', '.', '12,9'), 2, ',', '.');