PHP-将固定数字转换为十进制,使用最后2位数字作为小数点

PHP-将固定数字转换为十进制,使用最后2位数字作为小数点,php,Php,我遇到的情况是,我正在解析的CSV中的所有记录都是货币,但值之间没有小数点分隔。例如,值'1234'实际上是'12.34','12345'是'123.45' 我正在努力找到一种方法,手动将这些值转换成小数。我无法使用user number\u格式,因为它将提供如下输出: $original_num = 1234; $formatted_num = number_format($original_num, '2', '.', ''); $formatted_num = 1234.00; //O

我遇到的情况是,我正在解析的CSV中的所有记录都是货币,但值之间没有小数点分隔。例如,值'1234'实际上是'12.34','12345'是'123.45'

我正在努力找到一种方法,手动将这些值转换成小数。我无法使用user number\u格式,因为它将提供如下输出:

$original_num = 1234;

$formatted_num = number_format($original_num, '2', '.', '');

$formatted_num = 1234.00; //Output

另一个问题是,有时在合并两个数字后,我可能会有一个类似于“436257.5”的值,实际上是“436.2575”,因此我不能从字符串末尾手动输入“.”两个位置。当我解析文件时,是否应该考虑格式化它?

< p>假设你使用整数来代表小数点之后2个精度的小数点,你只需用100来把点插入到正确的位置。< /P> “联合”是什么意思?你是说乘?你应该在每次乘法后重新规范化,永远不要陷入一种表示不同精度的小数的情况(除非你跟踪精度,你可以这样做,但这很麻烦,而且通常是不必要的)

由于number_format()函数总是将200作为小数相加,因此可以将该值除以100

数字格式(原始数字/100,2)

$str=(strlen($str)
function multiply($a, $b) {
  return round($a * $b / 100);
}

function format($a) {
  return sprintf("%.2f", $a / 100);
}