我怎样才能添加"点"在最后两个数字之前

时间:2015-11-22 02:01:14

标签: php

如何在最后两个数字之前添加一个点?

让我们说数字是

299 , 250 , 400 , 4500 , 20099

我想得到最后两位数并为它添加点

2.99 , 2.50 , 45.00 , 200.99

使用php

4 个答案:

答案 0 :(得分:5)

您可以使用substr-replace

功能
substr_replace('299','.',-2,0);

答案 1 :(得分:1)

我是否错过了某些内容或者不会这样做 - 来自php.net - 手册。

 $number = 1234.5678;

 // english notation without thousands separator
 $english_format_number = number_format($number, 2, '.', '');
 // 1234.57

http://php.net/manual/en/function.number-format.php

根据@Roadirsh的版本,Substring_replace是更简单的选项,它可以完成真正要求的工作。 Sean的版本也将根据@sean number_format($number/100, 2, '.', '');的评论工作(如果评论被删除,则包含在此处)。我的版本只处理带有现有小数点的数字或添加.00

虽然预期的行为是数字会被舍入,但进一步的测试显示,如果它们已经只有​​/100部分中的两位小数,则它们不会被舍入。如果存在更多的小数位,它们将被舍入。

我会删除我的版本,但它可能会有用。

答案 2 :(得分:1)

如何使用number_formatarray_map

<?php
$numbers = explode(' , ', '299 , 250 , 400 , 4500 , 20099');
$numbersHandled = array_map(function($e) {
    return number_format($e/100, 2, '.', '');
}, $numbers);

print_r($numbersHandled);

检查runnable

答案 3 :(得分:0)

你可以使用正则表达式。

echo preg_replace('/(\d+)(\d{2})/', '$1.$2', '299 , 250 , 400 , 4500 , 20099');

输出:

2.99 , 2.50 , 4.00 , 45.00 , 200.99

演示:https://regex101.com/r/hY1zM6/1