0

我想知道如何检查一个数字是否有一位或两位小数,如果它只有一位小数,例如 12,9,然后用额外的 0 回显该数字,所以它看起来像 12,90。

<?php
$number = '12,9';

if $number //has 2 decimals // {
echo $number; }
else { 
echo $number.'0';
}
endif;
?>

我不知道如何正确地做到这一点,任何帮助将不胜感激!谢谢

4

4 回答 4

4

如果您的输入是.(点)分隔的小数,您可以使用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.

于 2013-02-21T14:21:44.203 回答
1

你需要的是 number_format 函数 http://www.php.net/manual/en/function.number-format.php

于 2013-02-21T14:21:15.827 回答
1

由于 PHP 不是严格类型的,你可以这样:

$parts = explode(",", $number);
$num_decimals = strlen($parts[1]);

if ($num_decimals == 2) //has 2 decimals // {
  echo $number; 
} else { 
  echo $number.'0';
}
于 2013-02-21T14:23:29.780 回答
1

如果您确定数字始终像您发布的那样格式化,那么您可以这样做:

number_format(str_replace(',', '.', '12,9'), 2, ',', '.');
于 2013-02-21T14:27:54.087 回答