簡單的小函數,只做了+ 、- 、* 、/四則運算,第一、二個參數為參與運算的兩個數,第三個參數為運算符(+-*/), 思路是運算前用字元串處理拿掉 '.' ,運算結束後還原倍數。 ...
function floatPoint(one,two,str){ //轉化為字元串 one = ''+one two = ''+two //切割成整數部分和小數部分 var oneStr = one.split('.') var twoStr = two.split('.') // 處理參數一或二為整數的情況 if(!oneStr[1]){ oneStr[1] = '' } if(!twoStr[1]){ twoStr[1] = '' } var length=null //比較小數部分的長度,以確定剝離小數點後放大的倍數 var oneFloatLength = oneStr[1].length var TwoFloatLength = twoStr[1].length if(oneFloatLength>TwoFloatLength){ length = oneFloatLength twoStr[1]=twoStr[1].padEnd(length,'0') } else if(TwoFloatLength>oneFloatLength){ length = TwoFloatLength twoStr[1]=oneStr[1].padEnd(length,'0') } else{ length = TwoFloatLength } // 拼接成處理後的數字 var oneBig = oneStr[0]+oneStr[1] var twoBig = twoStr[0]+twoStr[1] //根據運算符決定運算後縮小的倍數 var result=null switch(str){ case '+' :; case '-' : result = eval(oneBig+str+twoBig)/(10**length) break; case '*' : result = eval(oneBig+str+twoBig)/(10**(length*2)) break; case '/' : result = eval(oneBig+str+twoBig) } return result
簡單的小函數,只做了+ 、- 、* 、/四則運算,第一、二個參數為參與運算的兩個數,第三個參數為運算符(+-*/),
思路是運算前用字元串處理拿掉 '.' ,運算結束後還原倍數。