php 接收客户端传来的值,如何防止被转化为科学计数法

2016-05-09 09:26:13 +08:00
 lyp111332
使用函数$nnn=number_format($clientID,'','',''); 将科学计数法转化回来,但是转化的结果却和发送的数据不相同了,请问下当数字非常大时,如何才能防止转换为科学计数法。
6001 次点击
所在节点    PHP
16 条回复
somnus
2016-05-09 09:29:21 +08:00
用字符串
lyp111332
2016-05-09 09:30:56 +08:00
@somnus 如何使用呢, 请指教 我是这样
$c = file_get_contents("php://input");
$de_json = json_decode($c,true);
$clientID=$de_json["clientID"];
接收整个客户端传来的值, 然后解析出来就直接变成科学计数法。
gdtv
2016-05-09 09:33:39 +08:00
$clientID = (string)$_POST["clientID"];
GTim
2016-05-09 09:39:10 +08:00
客户端传过来的本来就是字符串
lyp111332
2016-05-09 09:42:42 +08:00
@gdtv 返回的数据还是科学计数法
lyp111332
2016-05-09 09:45:39 +08:00
@GTim 可是接收过来,一打印出来就是科学计数发啊
GTim
2016-05-09 09:50:16 +08:00
我去,客户端传过来的是 json. 我忘记看了,那只有 2 个办法了,一是让客户端改 二是改原串$c 加上双引号
ango
2016-05-09 09:51:48 +08:00
客户端传过来全是字符串的 json 结构,或者服务端格式化一下。
lyp111332
2016-05-09 10:03:43 +08:00
@GTim = =再问个简单的问题, 请问下如何引用其他页面的函数,而不运行其他文件,只是引用下函数,。
zi
2016-05-09 10:17:34 +08:00
php.ini 中设置 precision = ,(The number of significant digits displayed in floating point numbers.)
整数超过 precision 位会转化为 precision 位的科学计数法,浮点数超过 precision 位小数部分会被截断
或者用 sprintf
flymemory
2016-05-09 12:40:52 +08:00
@lyp111332 建一个 class ,再里面建一个 static function ,然后丢到 autoload 里~
raincious
2016-05-09 12:48:07 +08:00
@lyp111332

> 请问下如何引用其他页面的函数,而不运行其他文件,只是引用下函数,。

将那个函数提取出来,然后放在一个单独的文件里。

比如函数原本在 A.php 里,需要在 B.php 里引用。

这时候建立一个 C.php 文件,然后将函数移动到 C.php 中。

A.php 和 B.php 加上 require("C.php"),这样 A 和 B 就都能使用 /引用那个函数。

但是这样做并不好,建议尝试用更高级封装。比如封装成 Tool Class 然后用 Autoloader ,不过这样我猜测改量会很大。
jhdxr
2016-05-09 13:07:33 +08:00
@lyp111332 1. 提问的时候你没说清楚客户端传的是 json ,你自己做了一步 decode (这很重要); 2. RTFM
http://php.net/manual/en/function.json-decode.php
jhdxr
2016-05-09 13:08:19 +08:00
@GTim 不需要, PHP 的 json_decode 支持大数直接转为 string 的,有 option 的
GTim
2016-05-09 16:09:16 +08:00
@jhdxr 还真是
mingyun
2016-07-24 18:14:34 +08:00
@jhdxr 果然有 json_decode($json, false, 512, JSON_BIGINT_AS_STRING)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/277254

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX