You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何在substr提取的11位数值的前9位与后2位之间插入小数点

解决方法

你需要对提取到的11位固定长度数字串做插入小数点处理,直接修改原赋值逻辑即可,有两种常用实现方案:

  • 方案1:字符串分段拼接,可读性更高
    将原代码行 $matchesLine[$key] = substr($line,166,11); 替换为以下代码即可:
$rawVal = substr($line, 166, 11);
$matchesLine[$key] = substr($rawVal, 0, 9) . '.' . substr($rawVal, 9);
  • 方案2:使用substr_replace直接插入字符,代码更简洁
$matchesLine[$key] = substr_replace(substr($line, 166, 11), '.', 9, 0);

以上两种方案默认会保留所有前置0,比如输入00023659819,输出为000236598.19。如果你示例给出的期望输出需要去掉前导0,可以额外做一次前导0过滤:

$rawVal = substr($line, 166, 11);
$firstPart = ltrim(substr($rawVal, 0, 9), '0');
// 避免全0场景下前半部分为空,可加兜底逻辑
$firstPart = $firstPart === '' ? '0' : $firstPart;
$matchesLine[$key] = $firstPart . '.' . substr($rawVal, 9);

处理00023659819即可得到236598.19,和你示例的输出格式匹配。

内容的提问来源于stack exchange,提问作者Jack Yuan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:54:04