php 接收客户端传来的值,如何防止被转化为科学计数法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lyp111332
V2EX    PHP

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

  •  
  •   lyp111332 2016-05-09 09:26:13 +08:00 6614 次点击
    这是一个创建于 3464 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用函数$nnn=number_format($clientID,'','',''); 将科学计数法转化回来,但是转化的结果却和发送的数据不相同了,请问下当数字非常大时,如何才能防止转换为科学计数法。
    16 条回复    2016-07-24 18:14:34 +08:00
    somnus
        1
    somnus  
       2016-05-09 09:29:21 +08:00
    用字符串
    lyp111332
        2
    lyp111332  
    OP
       2016-05-09 09:30:56 +08:00   1
    @somnus 如何使用呢, 请指教 我是这样
    $c = file_get_contents("php://input");
    $de_json = json_decode($c,true);
    $clientID=$de_json["clientID"];
    接收整个客户端传来的值, 然后解析出来就直接变成科学计数法。
    gdtv
        3
    gdtv  
       2016-05-09 09:33:39 +08:00 via Android
    $clientID = (string)$_POST["clientID"];
    yemoluo
        4
    yemoluo  
       2016-05-09 09:39:10 +08:00
    客户端传过来的本来就是字符串
    lyp111332
        5
    lyp111332  
    OP
       2016-05-09 09:42:42 +08:00
    @gdtv 返回的数据还是科学计数法
    lyp111332
        6
    lyp111332  
    OP
       2016-05-09 09:45:39 +08:00
    @GTim 可是接收过来,一打印出来就是科学计数发啊
    yemoluo
        7
    yemoluo  
       2016-05-09 09:50:16 +08:00   1
    我去,客户端传过来的是 json. 我忘记看了,那只有 2 个法了,一是让客户端改 二是改原串$c 加上双引号
    ango
        8
    ango  
       2016-05-09 09:51:48 +08:00
    客户端传过来全是字符串的 json 结构,或者服务端格式化一下。
    lyp111332
        9
    lyp111332  
    OP
       2016-05-09 10:03:43 +08:00
    @GTim = =再问个简单的问题, 请问下如何引用其他页面的函数,而不运行其他文件,只是引用下函数,。
    zi
        10
    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
        11
    flymemory  
       2016-05-09 12:40:52 +08:00
    @lyp111332 建一个 class ,再里面建一个 static function ,然后丢到 autoload 里~
    raincious
        12
    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
        13
    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
        14
    jhdxr  
       2016-05-09 13:08:19 +08:00   1
    @GTim 不需要, PHP 的 json_decode 支持大数直接转为 string 的,有 option 的
    yemoluo
        15
    yemoluo  
       2016-05-09 16:09:16 +08:00
    @jhdxr 还真是
    mingyun
        16
    mingyun  
       2016-07-24 18:14:34 +08:00
    @jhdxr 果然有 json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2561 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:57 PVG 15:57 LAX 00:57 JFK 02:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86