如何使用PHP数学函数获得所需的输出

时间:2014-08-26 12:06:16

标签: php math

我在php中有以下示例

$available_points = '4409.3';

$convert_currency = number_format($available_points/1000,2);

它将我的值返回为 4.41

&安培;在将价值转换为积分时,它给我的价值 4410 而不是 4409.3

$available_points = $convert_currency*1000;

我如何借助php函数或任何函数实现这一目标。

3 个答案:

答案 0 :(得分:1)

当您提供以下功能时:

number_format($available_points/1000, 2);

将数字截断到2位小数,从而原始数字在此过程中丢失。当您使用1000重新复制它时,它只需要截断数字的值,而不是原始数字。因此,更好的方法是,不是通过替换原始数字来存储截断的数字,而是在运行中生成截断的数字,保持原始数字不变。

我最好的建议是:

$available_points = '4409.3';
$original_points = $available_points;
$convert_currency = number_format($available_points/1000, 2);

$available_points = $original_points;

或者,如果您不能拥有这些重复变量,可以将它们四舍五入到小数点后4位,但仍会有一些数据丢失。

$available_points = '4409.3';
$convert_currency = number_format($available_points/1000, 4); 

$available_points = $convert_currency * 1000;

答案 1 :(得分:0)

这是因为您将精度四舍五入为2位小数。如果你想恢复初始值,你可以做到4位小数......

$available_points = '4409.3';
$convert_currency = number_format($available_points/1000,4); 
// return value : 4.4093

// converting value into points:
$available_points = $convert_currency*1000;

答案 2 :(得分:0)

您可以使用:

$available_points = '4409.3';

$convert_currency = number_format($available_points/1000,4);

$available_points = $convert_currency*1000;