| 150 | * Format number according to localization |
| 151 | * |
| 152 | * PHP native function number_format unfortunatelly does not support |
| 153 | * decimal point or thousand separator longer than one character, e.g. |
| 154 | * like |
| 155 | * This function does support multi-char decimal point and thousands |
| 156 | * separator. |
| 157 | * Source code copied from http://www.php.net/number_format, comment |
| 158 | * by team at glossword dot biz. Thank you! |
| 159 | * |
| 160 | * @param mixed $number The number to convert based on locale. |
| 161 | * @param int $decimals Precision of the number of decimal places. |
| 162 | * @param string $dec_point Decimal point string |
| 163 | * @param string $thousands_sep Thousands separator |
| 164 | * @return string Converted number in string format. |
| 165 | */ |
| 166 | function wp_number_format($n, $decimals = 0, $dec_point = '.', $thousands_sep = ',') |
| 167 | { |
| 168 | $b = explode('.', $n); |
| 169 | $fract = sprintf('%0.'.$decimals.'f', '0.'.$b[1]); |
| 170 | if ($fract[0] == '1') { |
| 171 | $b[0] = $b[0] + ($b[0] >= 0 ? 1 : -1); |
| 172 | $fract[0] = '0'; |
| 173 | } |
| 174 | $rn = ''; |
| 175 | $l = strlen($b[0]); |
| 176 | /* Reverse string */ |
| 177 | for ($i = $l; $i > 3; $i -= 3) |
| 178 | { |
| 179 | $rn = $thousands_sep . substr($b[0], $i - 3, 3) . $rn; |
| 180 | } |
| 181 | /* sprintf() used to correct 0.79 to 0.790 */ |
| 182 | /* str_replace() used to correct decimals */ |
| 183 | /* str_repeat() used to correct decimals */ |
| 184 | return substr($b[0], 0, $i) . $rn . ($decimals |
| 185 | ? $dec_point.(isset($b[1]) |
| 186 | ? str_replace('0.', '', $fract) |
| 187 | : str_repeat(0, $decimals)) |
| 188 | : ''); |
| 189 | } |
| 190 | |
| 191 | /** |