数字数据类型问题,数字过大(问题没解决,只能让别人传字符串过来了)

主要问题
数据:9223372036854775808
问:接收的时候,直接变成了科学计数法,怎么不让他变?
注:数据是数字类型,不能传字符串类型

附带问题
数据:9223372036854775808.59454
问:怎么以数字类型返回,不以字符串类型返回?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

数字不可能了,你只能是字符串,精度会丢失的

3年前 评论
ytoz (楼主) 3年前
hedeqiang (作者) 3年前
讨论数量: 7

数字不可能了,你只能是字符串,精度会丢失的

3年前 评论
ytoz (楼主) 3年前
hedeqiang (作者) 3年前

分段传数字,然后再拼接。歪门邪道的方法 :joy:

3年前 评论

不行你砍我 :unamused:

$data = [];
$data['number'] = "9223372036854775808";
$data['float'] = "9223372036854775808.59454";
$return = json_encode($data);
$return = str_replace("\"{$data['number']}\"", $data['number'], $return);
$return = str_replace("\"{$data['float']}\"", $data['float'], $return);
var_dump($return);
// string(64) "{"number":9223372036854775808,"float":9223372036854775808.59454}"
3年前 评论
hedeqiang 3年前
忆往昔弹指间 (作者) 3年前
hedeqiang 3年前

这个肯定是存成字符串的啊,返回数据的时候,在转成float类型啊

3年前 评论

字段属性 用 字符串 varchar 或 char , 取出时 ,用 (int) 转化为 整型

3年前 评论
hedeqiang 3年前

PHP 标量类型与返回值类型声明

3年前 评论

注:数据是数字类型,不能传字符串类型

终究还是败给了现实

3年前 评论
ytoz (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!