我在php中有以下示例
$available_points = '4409.3';
$convert_currency = number_format($available_points/1000,2);
它将我的值返回为 4.41
&安培;在将价值转换为积分时,它给我的价值 4410 而不是 4409.3
$available_points = $convert_currency*1000;
我如何借助php函数或任何函数实现这一目标。
答案 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;