JS長(zhǎng)整型精度問(wèn)題實(shí)例分析
本文實(shí)例分析了一個(gè)JS長(zhǎng)整型精度問(wèn)題。分享給大家供大家參考。具體分析如下:
問(wèn)題描述:
后臺(tái)有一個(gè)腳本功能,可編寫(xiě)腳本動(dòng)態(tài)調(diào)用Java代碼
var roleId = 10214734953631045;
p360ApiController.notice(roleId, 4);
腳本執(zhí)行成功,但運(yùn)行結(jié)果與設(shè)定不一樣,此人沒(méi)有收到郵件
查看日志 recharge award has been sent. roleId=10214734953631044;
這角色I(xiàn)D數(shù)字少1,這....
問(wèn)題分析:
應(yīng)該是JS精度問(wèn)題,
精度
整數(shù)(不使用小數(shù)點(diǎn)或指數(shù)計(jì)數(shù)法)最多為 15 位。
小數(shù)的最大位數(shù)是 17,但是浮點(diǎn)運(yùn)算并不總是 100% 準(zhǔn)確:
修改腳本
var output = roleId;
輸出:
1.0214734953631044E16;
這不是JavaScript的錯(cuò),也不是Java的錯(cuò),上面轉(zhuǎn)成Long 確實(shí)是 roleId=10214734953631044;
可不可以那樣呢?
javascript控制臺(tái)輸入的都是字符串,然后調(diào)用java里的Integer.valueOf或者Long.valueOf轉(zhuǎn)換呢?
解決方案:
編寫(xiě)一個(gè)通用的轉(zhuǎn)化方法 目的把角色I(xiàn)D用字符串傳到JavaScriptEngine
importClass(com.ztgame.center.controller.api,P360ApiController);
申明為字符串
這樣JavaScriptEngine拿到的 就是字符串了 其實(shí)工作就是Java去處理了
執(zhí)行成功,先就這樣用吧~
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
js拖動(dòng)div 當(dāng)鼠標(biāo)移動(dòng)時(shí)整個(gè)div也相應(yīng)的移動(dòng)
要拖動(dòng)的div為最外層的div,這段代碼對(duì)顯示對(duì)話框的頭部綁定鼠標(biāo)監(jiān)聽(tīng)事件,當(dāng)鼠標(biāo)移動(dòng)時(shí),整個(gè)div也相應(yīng)的移動(dòng),具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下2013-11-11
JavaScript實(shí)現(xiàn)九宮格移動(dòng)拼圖游戲
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)九宮格移動(dòng)拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
詳解Javascript中document.execCommand()的用法以及指令參數(shù)列表
execCommand方法是執(zhí)行一個(gè)對(duì)當(dāng)前文檔,當(dāng)前選擇或者給出范圍的命令。在HTML5中,execCommand可以通過(guò)JavaScript代碼來(lái)調(diào)用,使得開(kāi)發(fā)者可以在網(wǎng)頁(yè)中實(shí)現(xiàn)一些復(fù)雜的文本操作。在HTML編輯器中這個(gè)命令用得很多,酷炫的強(qiáng)大功能。2023-07-07
解決JS請(qǐng)求路徑控制臺(tái)報(bào)錯(cuò)?Failed?to?launch'xxx'?because?t
這篇文章主要介紹了JS請(qǐng)求路徑控制臺(tái)報(bào)錯(cuò)?Failed?to?launch?‘xxx‘?because?the?scheme?does?not?have?a?registered?handler的問(wèn)題,本文給大家分享最新完美解決方法,需要的朋友可以參考下2023-03-03
javascript+ajax實(shí)現(xiàn)產(chǎn)品頁(yè)面加載信息
本文給大家分享的是使用javascript結(jié)合ajax實(shí)現(xiàn)產(chǎn)品頁(yè)面無(wú)刷新加載信息的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07

