php json_decode 后,数字转换成了 科学计数法 的解决方案 (number_format 函数改变了原有的值)
来源:互联网 发布:销售软件定制 编辑:程序博客网 时间:2024/05/15 06:25
php在执行 json_decode 后,数字对象转换成了 科学计数法
"result":[{"uid":1021696035257980469,"categoryUid":1502187334502418450}]
这是获取到的 json串,直接使用 json_decode 之后,变成科学计数法
结果:
["uid"] => float(1.021696035258E+18) ["categoryUid"] => float(1.5021873345024E+18)
解决问题
1. 第一种方法使用 php自带函数 number_format(),效果如下:
$json = '{"uid":1021696035257980469,"categoryUid":1502187334502418450}'; $array = $this->json_decode($json,TRUE); foreach ($arrayas $key => $val) { $array[$key] = number_format($val, 0, '', ''); } print_r($array);
结果:
["uid"] => string(19) "1021696035257980416" ["categoryUid"] => string(19) "1502187334502418432"
这时候发现得到的数据与原有数据不一致,结果被改变,此方法暂时行不通。
2. 第二种方法,后来去网上查了 json_decode 函数,发现json_decode 支持大数直接转为 string 的。
函数链接地址: http://php.net/manual/en/function.json-decode.php
- The first is JSON_BIGINT_AS_STRING that allows casting big
integers to string instead of floats which is the default. - 允许将大整数转换成字符串而不是浮点数
$json = '{"uid":1021696035257980469,"categoryUid":1502187334502418450}'; $array = $this->json_decode($json, TRUE, 512, JSON_BIGINT_AS_STRING); print_r($array);
到了正确的结果:
["uid"] => string(19) "1021696035257980469" ["categoryUid"] => string(19) "1502187334502418450"
阅读全文
0 0
- php json_decode 后,数字转换成了 科学计数法 的解决方案 (number_format 函数改变了原有的值)
- php大数字格式化,大数据格式化,科学计数法,长数字格式化,函数number_format
- Java jxl导入excel文件,导入的数字、身份证号码、手机号变成了科学计数法,解决方案
- decima转换科学计数法的数字
- csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
- csv 文件使用excel打开, 数字使用了科学计数法的问题解决
- 模仿php number_format函数的c# 价格转换函数
- 将数字转换成科学计数法
- 数字格式化(输入数字(字符串),保留位数,同时逗号分隔,可输入科学计数法,增加了负数的处理)
- 科学计数法如何转换成普通的计数方式??
- php json_decode 转换为空的解决方案一
- js把科学计数法形式的数据转换成非科学计数法的形式
- Java科学计数法的转换
- PHP中使用了mcrypt_decrypt函数处理Json串后导致Json_decode返回null问题
- PHP数字前补0的自带函数sprintf 和number_format的用法
- excel/csv等表格导出数据数字类型过长出现科学计数法的解决方案
- java 转换科学计数法数字
- 科学计数法转换为普通数字
- log4j2配置文件详细说明
- StringUtils api 中文 英文 对照
- 安卓PDA
- ReactNative分组列表SectionList使用详情及示例详解
- 子网划分的好处
- php json_decode 后,数字转换成了 科学计数法 的解决方案 (number_format 函数改变了原有的值)
- centos7 Qt5.9.1 共享内存之进程通信
- java序列化
- Android6.0与Android4.4关于3重DES加密的简介
- sqlserver的分页
- 程序员真的适合跑步健身吗?
- SQL加强(二)数据类型
- [bzoj1096][ZJOI2007]仓库建设
- NPOI控制excel绘制单元格颜色并导出