当前位置: 首页 > Web前端 > HTML

我想用JS实现0.1+0.2输出0.3

时间:2023-03-28 01:21:14 HTML

鍘熷洜鏄槰澶╂湁浜洪棶鎴戜竴涓棶棰橈細鍥犱负JS绮惧害闂0.1+0.2==0.300000000000000004锛岃兘涓嶈兘鍙栧埌涓€涓纭殑鍊笺€?.1+0.2==0.3杩欎釜绠€鍗曪紝杞垚鏁存暟锛屽啀闄ゅ洖鍘汇€傛垨鍥涜垗浜斿叆骞朵繚鐣欏皬鏁般€?(0.1+0.2)*10).toFixed()/10(0.1*10+0.2*10)/10鐒跺悗鍙堣闂埌锛屽鏋滄湁涓や綅灏忔暟鍛紵涓変釜鍦ㄥ摢閲岋紵鎴戣浣犱笉鎳傦紒鍚屾牱鐨勬柟娉曪紝浣犳坊鍔犲畠锛屼綘灏卞畬鎴愪簡銆傜劧鍚庝粬灏辨€ヤ簡锛屼粬璇翠笁鍗侊紵杩欐牱锛岄棶棰樺氨鍙樹簡锛屽彉鎴愪簡JS鑳戒笉鑳藉瓨鍌ㄨ繖鏍蜂竴涓暟銆傛垜蹇冩兂锛岃繖涓嶅氨鏄ぇ鏁拌绠楀悧锛屾垜鍒蜂簡銆備负浜嗙畝鍗曡捣瑙侊紝鎴戞壘浜嗕竴涓簱bignumber鏉ュ疄鐜拌繖閮ㄥ垎閫昏緫newBigNumber(0.1).plus(0.2)涓€涓畝鍗曠殑batch銆備絾鏄繖閲屾垜鑷繁鍙戠幇浜嗛棶棰橈細闇€瑕佸啓鎴愮壒瀹氱殑鏂瑰紡锛岃繖鏄笉鍚堢悊鐨勩€傚張鎯充簡鎯筹紝涔嬪墠鍒蜂簡璁$畻鍣紝缁欎綘杈撳叆'1+2+3*4'鐒跺悗璁╀綘杈撳嚭璁$畻缁撴灉锛堣櫧鐒舵湁lazyevalscheme锛屼絾鏄垜鍙椾笉浜嗕簡闂鏂规锛夈€傛鏌ワ細馃惗閮侀椃棰?锛屽彧鏀寔鍔犲噺棰?锛屾敮鎸佹嫭鍙凤紝涓嶆敮鎸佷箻闄ら3锛岄€愭笎鍙樻€併€傝繖鏍规湰涓嶆槸鏁板銆傝繖鏄畠鑷繁鐨勯€昏緫銆傞棶棰?锛屽姞瀵嗭紝闇€瑕佸紑閫氫細鍛樸€傛病鍔炴硶锛屽崠娣け璐ワ紙鍚屽績锛夛紝鑷繁鍐欏お璐规椂闂翠簡銆傛煡鐪嬭В鍐虫柟妗堬紝鑾峰彇鍙嶅悜娉㈠叞褰㈠紡鐨勫叧閿瓧锛屽彲浠ュ鐞嗚绠椾紭鍏堢骇銆傝〃杈惧紡琚浆鎹负鍙嶆尝鍏拌锛屾墍浠ユ垜涓嶅緱涓嶅悙妲戒竴涓嬨€傜綉涓婄殑鍨冨溇璧勬簮灞呯劧涓嶆敮鎸佸皬鏁帮紝鍙敮鎸佷釜浣嶆暟銆傝緭鍑虹粨鏋滀篃鏈夐棶棰樸€傜涓€涓睆骞曚笂鐨勬悳绱㈢粨鏋滃疄闄呬笂鏄笂涓€椤电殑鍚屼竴绡囨枃绔犮€傛暣鏁拌绠楁病鏈夐棶棰橈紝鑷繁娓╅ケ灏卞ソ銆傛垜浠細鍦ㄨ幏寰楀彿鐮佺殑鍦版柟鍋氫竴娈垫椂闂翠互纭繚瀹屾暣鎬с€俧unctioncalculator(str){letn=0,charStack=[],numStack=[],reducerStr=[],leftIndex=-1constop={'+':1,'-':1,'*':2,'/':2,'(':3,')':3}while(n0?Math.floor(num1/num2):Math.ceil(num1/num2));}}}杩斿洖鍫嗘爤.pop();};constisNumber=(token)=>{return!('+'===token||'-'===token||'*'===token||'/'===token);}杩欓噷鏂逛究娴嬭瘯鐨勫綋鐒舵槸vue浜嗭紝鍔犱笂璁$畻灞炴€э紝鍗″崱濂界敤鐩稿叧璧勬簮鍓嶇BUG璁板綍鈥斺€斾粈涔堟槸绉戝璁版暟娉曪紵杩欓噷鏈変竴浜涚簿搴︾浉鍏崇殑璧勬枡锛屽彲浠ョ偣杩涘幓鐪嬫祴璇曞湴鍧€锛歨ttp://jsrun.net/9f9Kp/edit鍦ㄨ瘎璁哄尯鍥炲鑰侀搧鐨勬柟妗堬紝鏂规鍙銆傚啀琛ュ厖涓€涓簿搴︾浉鍏崇殑鍐呭銆侻ath.Abs鈥嬧€嬶紙0.1+0.2-0.3锛?鏁板瓧epsilonMath.Abs鈥嬧€嬶紙0.1+0.2-0.3000000000000001锛?鏁板瓧.epsilonmath.abs锛?.1+0.2-0.300000000000001锛夋垨2-52銆?/p>