成人片在线免费看_国产日韩欧美一区二区_自拍偷拍亚洲色图欧美_一区二区三区在线视频111_欧美理论一区二区_国产日韩欧美一区二区_精品日本一区二区_久久福利电影_久久久久一区二区三区_一区二区三区视频

福州網(wǎng)站建設(shè)>網(wǎng)站新聞>php技術(shù)

踩坑之json_encode精度丟失問題

發(fā)布日期:2022-01-12瀏覽次數(shù):1112 來源:福州網(wǎng)站建設(shè)

1.前言
最近在工作中,后臺(tái)出現(xiàn)了這樣的錯(cuò)誤,傳遞的手續(xù)費(fèi)是29塊錢,但是傳遞到了第三方接口就報(bào)錯(cuò)了,查看日志顯示該手續(xù)費(fèi)變成了28.999999999999996,日志如下:






明明是29怎么就變了?通過斷點(diǎn)檢測(cè),原來是json_encode()轉(zhuǎn)換的問題


2.案例演示
$param={


‘a(chǎn)mount’=>5000,


‘fee’=>29


}


var_dump(json_encode($param));//{"amount":5000,"fee":28.999999999999999999996}
3.解決方法
3.1方法1:強(qiáng)行轉(zhuǎn)換成字符串保證精度
$request['param']['feeAmount']=(string)$request['param']['feeAmount'];


注意:使用這種方法千萬要注意,對(duì)接接口是否有變量類型要求


3.2方法2:格式化數(shù)字number_format函數(shù)
number_format(number,decimals,decimalpoint,separator)


參數(shù):


number參數(shù)是要格式化的數(shù)據(jù)
decimals參數(shù)是保留的小數(shù)
decimalpoint參數(shù)是規(guī)定用作小數(shù)點(diǎn)的字符串
separator參數(shù)是規(guī)定用作千位分隔符的字符串
案例:
$request['param']['feeAmount']=(int)number_format($request['param']['feeAmount'],0);


注意:number_format返回的是字符串string,要注意接口是否有規(guī)范要求,如果有,則須強(qiáng)行轉(zhuǎn)換為int或接口規(guī)范的類型


疑問1:這時(shí)候應(yīng)該有人在想能不能直接強(qiáng)制轉(zhuǎn)換為int呢?注意,float強(qiáng)制轉(zhuǎn)換成int有坑!


答:int類型是向下取整的,比如:12910.9 會(huì)被轉(zhuǎn)換為 12910


疑問2:這時(shí)就會(huì)有人問我,浮點(diǎn)數(shù)顯示的是8,為什么轉(zhuǎn)換成整數(shù)會(huì)變成7?


答:floor((0.1+0.7)*10),其結(jié)果是7而不是8,是因?yàn)樵摻Y(jié)果內(nèi)部表示的是7.9999.....所以不要相信浮點(diǎn)數(shù)結(jié)果精確,也不要比較兩個(gè)浮點(diǎn)數(shù)是否相等
3.3方法3:修改配置項(xiàng)serialize_precision
json_encode() 轉(zhuǎn)換浮點(diǎn)小數(shù)溢出現(xiàn)象只出現(xiàn)在PHP 7.1+版本,是因?yàn)閜hp源碼對(duì)于json_encode()轉(zhuǎn)換使用到了serialize_precision配置項(xiàng),如下圖


static inline void php_json_encode_double(smart_str *buf, double d, int options) /* {{{ */
{
    size_t len;
    char num[PHP_DOUBLE_MAX_LENGTH];
    php_gcvt(d, (int)PG(serialize_precision), '.', 'e', num);
    len = strlen(num);
    if (options & PHP_JSON_PRESERVE_ZERO_FRACTION && strchr(num, '.') == NULL && len < PHP_DOUBLE_MAX_LENGTH - 2) {
        num[len++] = '.';
        num[len++] = '0';
        num[len] = '\0';
    }
    smart_str_appendl(buf, num, len);
}
關(guān)于PHP函數(shù)serialize_precision (integer)的一些概念了解:


適用范圍:PHP_INI_ALL;


默認(rèn)值:100


serialize_precision指令的數(shù)量決定了雙打和彩車被序列化后的浮點(diǎn)數(shù)字存儲(chǔ)。設(shè)置到一個(gè)合適的值,確保精度的數(shù)字時(shí),可能丟失以后反序列化。所以我們要使得json_encode()轉(zhuǎn)換浮點(diǎn)數(shù)沒有小數(shù)溢出,建議使用默認(rèn)值 serialize_precision = -1 即可 。


3.4知識(shí)點(diǎn)補(bǔ)充
json_encode有個(gè)選項(xiàng)JSON_PRESERVE_ZERO_FRACTION,表示如果是個(gè)整數(shù), 是否保留小數(shù)點(diǎn)和尾數(shù)0,舉例如下:


<?php
echo json_encode(223.0);// 223
echo json_encode(223.0, JSON_PRESERVE_ZERO_FRACTION);// 223.0
3.5其他取整函數(shù)
四舍五入取整 round(param)
向上取整 ceil(param)
向下取整 floor(param)


4.bcsub()函數(shù)精度相減
格式:


string bcsub ( string $left_operand , string $right_operand [, int $scale = int ] )


說明:


2個(gè)任意精度數(shù)字的減法


參數(shù):


left_operand:字符串類型的左操作數(shù).


right_operand:字符串類型的右操作數(shù).


scale:此可選參數(shù)用于設(shè)置結(jié)果中小數(shù)點(diǎn)后的小數(shù)位數(shù)。也可通過使用 bcscale() 來設(shè)置全局默認(rèn)的小數(shù)位數(shù),用于所有函數(shù)。


返回值:


返回減法之后結(jié)果為字符串類型.


代碼案例:


<?php
$a  =  '1.234' ;
$b  =  '5' ;
echo  bcsub ( $a ,  $b );      // -3
echo  bcsub ( $a ,  $b ,  4 );   // -3.7660
————————————————
版權(quán)聲明:本文為CSDN博主「拯救世界的派大星」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_46266407/article/details/105556444

以上是由福州網(wǎng)站建設(shè)的小編為你分享了"踩坑之json_encode精度丟失問題"文章,如果你在這方面有什么問題,隨時(shí)聯(lián)系我們

php技術(shù)有關(guān)的文章
如果您有什么問題,歡迎咨詢我們客服! 點(diǎn)擊QQ咨詢
成人片在线免费看_国产日韩欧美一区二区_自拍偷拍亚洲色图欧美_一区二区三区在线视频111_欧美理论一区二区_国产日韩欧美一区二区_精品日本一区二区_久久福利电影_久久久久一区二区三区_一区二区三区视频
免费精品视频一区| 国产精品区二区三区日本| 欧美精品中文字幕一区二区| 国产成人亚洲欧美| 久热这里只精品99re8久| 日韩一二三区不卡在线视频| 成人区精品一区二区| av一区二区三区四区电影| 亚洲一区二区三区免费看| 欧美男人的天堂| 欧美日韩在线一二三| 国产成人精品日本亚洲11| 相泽南亚洲一区二区在线播放| 国产在线精品一区| 中文字幕一区二区三区5566| 一区二区三区欧美成人| 久久精品久久精品国产大片| 亚洲国产精品一区二区第一页| y111111国产精品久久婷婷| 美女视频久久| 美日韩精品免费| 日韩欧美激情一区二区| 婷婷五月色综合| 久久精品中文字幕一区二区三区| 中文字幕av日韩精品| 精品国产乱码久久久久软件| 一区二区三区国产福利| 伊人久久婷婷色综合98网| 一本久道久久综合| 一区二区在线高清视频| 韩国精品一区二区三区六区色诱| 国产精品对白刺激久久久| 懂色中文一区二区三区在线视频| 日本电影一区二区三区| 久久久www免费人成黑人精品| 亚洲高清不卡一区| 日韩在线三级| 精品一区二区三区日本| 99久久精品无码一区二区毛片| 欧美日韩精品免费在线观看视频| 国产一区二区不卡视频在线观看| 日韩国产在线一区| 樱花www成人免费视频| 国产精品免费视频一区二区| 日韩理论片在线观看| 视频一区视频二区视频| 日产国产精品精品a∨| 清纯唯美一区二区三区| 亚洲7777| 在线成人av电影| 西游记1978| 国产精品裸体一区二区三区| 亚洲一区二区三区精品在线观看| 中文字幕成人一区| 91视频网页| 国产精品手机在线| 欧洲视频一区二区三区| 免费在线成人av| 亚洲国产欧洲综合997久久| 一本色道久久综合亚洲二区三区| 欧美色欧美亚洲另类七区| 51蜜桃传媒精品一区二区| 国产精品久久7| 免费久久一级欧美特大黄| 高清国语自产拍免费一区二区三区| 欧美高清性xxxxhdvideosex| 欧美高清视频一区| 久久精品一区二区三区不卡免费视频| 日韩欧美视频一区二区| 国产成人一区二区三区免费看| 亚洲欧洲一区二区在线观看| 欧美久久综合性欧美| 亚洲午夜精品一区二区| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲欧美日产图| 国产91亚洲精品一区二区三区| 国产精品加勒比| 伊人久久大香线蕉av一区| 久久久久免费网| 91手机在线观看| 91沈先生播放一区二区| 中国成人亚色综合网站| 色姑娘综合av| 国产精品免费一区二区三区在线观看| 亚洲永久激情精品| 在线免费观看一区二区三区| 国产精品一区二区免费看| 97超碰人人看人人| av一区二区在线看| 成人欧美一区二区三区黑人免费| 欧美午夜精品理论片a级大开眼界| 精品婷婷色一区二区三区蜜桃| 久久精品一区二区三区不卡免费视频| 国产日韩在线一区二区三区| 97netav| 日本视频一区在线观看| 岛国视频一区| 久久人人爽爽人人爽人人片av| 国产精品加勒比| 免费日韩电影在线观看| 伊人久久大香线蕉精品| 一区二区三区我不卡| 狠狠色综合欧美激情| 九九九九精品九九九九| 亚洲在线色站| 亚洲天堂电影网| 久久久久久国产精品免费免费| 97久久夜色精品国产九色| 蜜桃视频在线观看91| 国产伦视频一区二区三区| 日韩欧美视频一区二区三区四区| 日韩av高清在线播放| 国产三区二区一区久久| 久久久久久国产精品一区| 国产伦精品一区二区三区视频黑人| 午夜精品视频在线观看一区二区| 亚洲精品免费在线看| 欧美主播一区二区三区美女 久久精品人| 亚洲v欧美v另类v综合v日韩v| 亚洲精品日韩成人| 欧美一级爽aaaaa大片| 国产精品初高中精品久久| 国产麻豆一区二区三区在线观看| 欧美日韩大片一区二区三区| 久久艳妇乳肉豪妇荡乳av| 日韩亚洲视频| 国产精品入口免费| 99精品欧美一区二区三区| 久久精精品视频| 69174成人网| 日韩欧美三级一区二区| 超碰97人人在线| 日本一区二区三区四区在线观看| 日韩精品欧美一区二区三区| 51成人做爰www免费看网站| 中文字幕中文字幕在线中一区高清| 日韩三级电影网站| av在线亚洲男人的天堂| 91免费版网站在线观看| 91久久极品少妇xxxxⅹ软件| 视频一区二区三| 日韩中文不卡| 国产一区二区三区高清| 亚洲国产精品久久久久久女王| 114国产精品久久免费观看| 一区高清视频| 国产精品99久久久久久久| 久久久www免费人成黑人精品| 亚洲精品一区二区三区av| 91超碰在线电影| 国产欧美日韩视频一区二区三区| 在线免费观看一区二区三区| 国产精品10p综合二区| 国产一区二区三区四区五区在线| 51国偷自产一区二区三区的来源| 7777精品伊久久久大香线蕉语言| 成人一区二区三区四区| 国产欧美一区二区三区不卡高清| 激情欧美一区二区三区中文字幕| 欧美一卡2卡3卡4卡无卡免费观看水多多| 国产麻豆乱码精品一区二区三区| 欧美人与物videos另类| 国产精品久久国产精品| 五月婷婷综合色| 成人av蜜桃| 日本一区二区三区视频在线播放| 国产伦精品一区二区三区视频黑人| 久草一区二区| 亚洲国产精品视频一区| 久久综合久久久| 久久99精品久久久久久青青日本| 91黄在线观看| 亚洲国产精品综合| 国产经典一区二区三区| 亚洲欧美电影在线观看| 国产厕所精品在线观看| 国产一区视频观看| 欧美日韩一区二区视频在线| 成人av免费在线看| 久久天堂国产精品| 精品国产乱码久久久久久久软件| 蜜桃av久久久亚洲精品| 草莓视频一区| 午夜精品一区二区在线观看的| 精品无人区一区二区三区竹菊| 99精彩视频在线观看免费| 亚洲精品欧美精品| 日韩av影视| 日本高清不卡三区| 欧美日韩国产不卡在线看| 日本一区二区三区在线视频| 一区二区在线中文字幕电影视频| 精品国产一区二区三区四区vr| 不卡的av一区| 亚洲精品在线视频观看| 97se亚洲综合在线| 日韩国产精品一区二区| 视频在线一区二区三区| 五月婷婷一区| 国产成人精品免费视频大全最热| 色综合视频二区偷拍在线| 久久99精品久久久久久秒播放器| 精品一区二区三区自拍图片区| 久久66热这里只有精品| 中文字幕在线亚洲三区| 一区一区视频| 精品久久久三级| 91福利视频导航| 亚洲第一综合| 亚洲午夜精品一区二区三区| 欧美高清一区二区| 国产99在线免费| 青青成人在线| 蜜桃狠狠色伊人亚洲综合网站| 明星裸体视频一区二区| 精品国产乱码久久久久久丨区2区| 精品亚洲一区二区三区四区五区高| 伊人久久婷婷色综合98网| 高清日韩一区| 综合视频在线观看| 一本久道久久综合狠狠爱亚洲精品| 欧美日韩国产不卡在线看| 亚洲一区不卡在线| 免费国产在线精品一区二区三区| 国产精品久久国产三级国电话系列| 日本午夜精品一区二区| 亚洲欧美日韩精品在线| 婷婷精品国产一区二区三区日韩| 91传媒视频在线观看| 国产乱人伦精品一区二区| 欧美精品欧美精品系列c| 欧洲成人一区二区| 亚洲一区综合| 伊人久久大香线蕉综合75| 四虎一区二区| 精品久久久久久综合日本| 亚洲欧美日韩综合一区| 99中文字幕| 91九色视频在线观看| 国产精品一区在线观看| 成人黄色在线免费观看| 日韩欧美视频一区二区三区四区| 激情五月综合色婷婷一区二区| 久久国产精品99久久久久久丝袜| 综合视频在线观看| 激情欧美一区二区三区中文字幕| 欧美日产一区二区三区在线观看| 中文字幕一区二区三区四区五区| 97碰碰视频| 一区一区视频| 成人欧美一区二区三区视频| 久久久99国产精品免费| 视频一区二区三区免费观看| 精品人伦一区二区三区| 狠狠色伊人亚洲综合网站色| 国产v亚洲v天堂无码| 日本黄网免费一区二区精品| 在线视频不卡一区二区三区| 国产九色精品| 精品一卡二卡三卡四卡日本乱码| 亚洲在线欧美| 久久er99热精品一区二区三区| 欧美亚洲免费高清在线观看| 日韩色妇久久av| 亚洲电影网站| 综合国产精品久久久| 一卡二卡3卡四卡高清精品视频| 亚洲欧美日本国产有色| 国产不卡一区二区三区在线观看| 精品欧美日韩| 91国产在线播放| 欧美13一14另类| 亚洲美女网站18| 久久人人爽爽人人爽人人片av| av日韩中文字幕| 国产一区二区在线网站| 国产91aaa| 爱情岛论坛亚洲入口| 日本不卡一区二区三区在线观看| 国产女主播一区二区| 成人黄色片视频网站| av一区二区三区四区电影| 亚洲国产另类久久久精品极度| 日韩av大全| 成人午夜电影在线播放| 欧美精品亚洲精品| www.av一区视频| 日本精品一区二区| 91久久爱成人| 欧美色欧美亚洲另类七区| 欧美日韩另类综合| 国产一区二区不卡视频在线观看| 日韩国产精品一区二区三区| 亚洲制服欧美久久| 亚洲一区二区三区精品视频| 亚洲国产另类久久久精品极度| 欧美日韩国产三区| 99在线视频首页| 少妇特黄a一区二区三区| av免费观看久久| 视频一区二区三区免费观看| 国产精品一区视频网站| 色一情一乱一伦一区二区三区丨| av在线不卡一区| 成人女人免费毛片| 国产精品一区二区不卡视频| av一本久道久久波多野结衣| 久久天堂国产精品| 久久riav| 亚洲欧美久久234| 亚洲国产一区二区三区在线| 国产私拍一区| 精品综合久久久| 日韩电影大全在线观看| 一区二区三区欧美成人| 中文一区一区三区免费| 日韩动漫在线观看| 激情视频在线观看一区二区三区| 日韩欧美精品一区二区| 九9re精品视频在线观看re6| 日韩尤物视频| 国产乱码精品一区二区三区卡| 亚洲成色www久久网站| 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美综合一区| 国产精品一区二区三区在线观| 色综合久久88色综合天天提莫| 欧美另类一区| 国产精品9999久久久久仙踪林| 国产美女在线精品免费观看| 国产一区二区三区免费不卡| 精品免费日产一区一区三区免费| 日韩av一区二区三区美女毛片| 一区二区免费在线视频| 日韩在线国产| 婷婷亚洲婷婷综合色香五月| 椎名由奈jux491在线播放| 久久久神马电影| 美国av一区二区三区| 久久久久无码国产精品一区| 国产精品加勒比| 蜜桃传媒视频麻豆第一区免费观看| 日本一区二区不卡高清更新| 欧美国产一二三区| 精品日产一区2区三区黄免费| 女人一区二区三区| 国产欧美精品一区二区三区| 久久99精品久久久久久久青青日本| 性欧美大战久久久久久久免费观看| 亚洲资源在线网| 欧美日韩国产精品一区二区| 精品视频一区在线| 国产伦精品一区二区三区高清| 一区二区三区国产福利| 伊人精品久久久久7777| 亚洲区一区二区三区| 日韩av影视| 国产欧美在线一区二区| 999热视频| 欧美日韩综合另类| 久久99热只有频精品91密拍| 亚洲va韩国va欧美va精四季| 久久精品丝袜高跟鞋| 欧美另类视频在线| 欧美日韩一区二区视频在线| 久久久久久欧美精品色一二三四| 91国产在线播放| 国产一区二区三区四区五区在线| 91久久精品www人人做人人爽| 欧美一区二区三区在线播放| 在线一区高清| av观看久久| 成人一区二区在线| 91手机在线播放| 电影午夜精品一区二区三区| 正在播放91九色| 精品视频一区在线| 美媛馆国产精品一区二区| 超碰97在线播放| dy888夜精品国产专区| 欧美第一黄网| 欧美一区三区二区在线观看| 水蜜桃亚洲一二三四在线| 久久精品人人做人人爽电影| 亚洲人久久久| 欧美大香线蕉线伊人久久| 日本一区美女| 亚洲精品在线视频观看| 51国偷自产一区二区三区的来源| 日韩亚洲一区在线播放| 亚洲精品视频一区二区三区| 91pron在线| 国产呦系列欧美呦日韩呦| 一区二区三区四区视频在线| 在线播放豆国产99亚洲| 国产91精品入口17c| 在线国产精品网| 影音先锋欧美在线| 中文字幕人成一区| 亚洲国产另类久久久精品极度|