js輸入0到100之間任意小數(shù) JavaScript分離算術(shù)表達式?
JavaScript分離算術(shù)表達式?思路:1.把所有的空格回車換行制表符可以去掉!2.憑借正則表達式來接受看操作空間切割,切割空間符:回車符出現(xiàn)小數(shù)精度丟失的原因?兩個例子:在js中:0.10.2!0
JavaScript分離算術(shù)表達式?
思路:
1.把所有的空格回車換行制表符可以去掉!
2.憑借正則表達式來接受看操作空間切割,切割空間符:回車符
出現(xiàn)小數(shù)精度丟失的原因?
兩個例子:
在js中:0.10.2!0.3反而等于0.300000000004//這跟js設(shè)置為采用雙精度存儲小數(shù)有關(guān)系
在php中9.45*1000!45反而444//這跟php取余運算時是先取整再取余有關(guān)系
以上兩種情況的根本原因應(yīng)該要是小數(shù)在計算機存儲時精度弄丟會造成的.
只不過有些小數(shù)在計算機不使用二進制它表示時沒能詳細(xì)的來表示出去,類似十進制中的1/3差不多,無理數(shù),無限循環(huán).
但是計算機存儲小數(shù)的類型論是float還是double大都有位數(shù)限制的,所以我他們讀取的只是因為一個近似值,這就會造成了精度丟了.
只不過經(jīng)度丟失的了,所以我有些時候運算結(jié)果是會跟我們出人意料的不太一樣了.
js三種變量類型?
三大類型:數(shù)值類(Number)、字符串(string)、布爾(boolean)
1、數(shù)值類
1)、轉(zhuǎn)字符串:
varnum3.1415926
var(num)
1
2
1
2
2)、次方:
函數(shù):Math.pow(m,n)m的n次方
函數(shù):Math.sqrt(值)
1
2
1
2
3)、取整:
1、.丟落小數(shù)部分,剩余整數(shù)部分
parseInt(5/2)
2、.向上取整,有小數(shù)就整數(shù)部分加1
Math.ceil(5/2)
3、向下取整,前往大于或等于一個推導(dǎo)數(shù)字的最大整數(shù)
Math.floor(5/2)-----gt2系列
numMath.floor(num*100)/100我得到一個數(shù)值類型,而且可以保留兩位小數(shù)的數(shù)值,
4、.四舍五入
(-23.2)--gt-23
(-23.5)--r26-23
(-23.7)--dstrok-24
說明:找與它絕對值最小的一個整數(shù)應(yīng)該是了,要是修真者的存在兩個整數(shù)(及不同于-23.523.5)這樣的情況,取大
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
4)、保留位數(shù),以下均前往字符串類型
1、可以保留委托位數(shù)
函數(shù):var(5)//#343.1416#34
2、保留n位小數(shù)的值,toFixed()系統(tǒng)默認(rèn)記錄整數(shù)
“123.45678”.toFixed(3)//輸出字符串123.456
(3)//輸出字符串123.456
1
2
3
4
5
1
2
3
4
5
5)、指數(shù)
函數(shù):(3)//#343.142e5#34
只能說明:使用指數(shù)記數(shù)法將數(shù)字轉(zhuǎn)換的為指數(shù)形式的字符串,其中小數(shù)點前只有兩名,小數(shù)點后的位數(shù)則由參數(shù)指定
1
2
1
2
6)、隨機數(shù)
Math.random()//設(shè)置能夠得到一個0-1的隨機數(shù)
Math.floor(Math.random()*11)//查看一個1-10的隨機數(shù)
1
2
1
2
2、字符串類
屬性:length,無括號
#34abc123#34.length//7
1
1
1)、數(shù)字字符串轉(zhuǎn)數(shù)值
varnumberNumber(string_value)
1
1
2)、帶數(shù)字字符串轉(zhuǎn)數(shù)值
parseFloat(#343.14meters#34)//Returns3.14
parseInt(#343blindmice#34)//Returns3
parseInt(#3412.34#34)//Returns12
1
2
3
1
2
3
3)、進制可以計算
parseInt(#3411#34,2)//Returns3(1*21)
parseInt(#340xvd#34)parseInt(#34ff#34,16)//Returns255(15*1615)
parseInt(#34zz#34,36)//Returns1295(35*3635)
parseInt(#34077#34,8)//Returns63(7*87)
parseInt(#34077#34,10)//Returns77(7*107)
1
2
3
4
5
1
2
3
4
5
4)、趕往字符位置
(searchvalue,fromindex)//searchvalue必需fromindex可選,規(guī)定在字符串中正在檢索到的位置,最小為0
(#34dbdef,aaa#34)//9
indexOf()趕往某個指定你的字符串值在字符串中唯一一個又出現(xiàn)的位置,假如找不到啊回-1
1
2
3
1
2
3
5)、徹底去除字符串兩邊空白(trim())
6)、檢索到自動分配的字符串(search())
varstr#34abcaercd!#34
console.log((#34aercd#34))//4
檢索系統(tǒng)字符串中指定的子字符串或檢索系統(tǒng)與正則表達式相自動分配的子字符串。若可以找到則趕往自動分配到的字符串起始位置,若找不到啊回-1.
1
2
3
1
2
3
7)、替換匹配到的字符串(replace())
該方法用于在字符串中用一些字符替換另一些字符,或修改成一個與正則表達式版本問題的子串
8)、把其他類型被轉(zhuǎn)化成字符串(toString()、String())
1、toString():除開null和undefined之外,其他的類型(數(shù)值,布爾,字符串,對象)也有此方法,它回或者值的字符串表現(xiàn)(的確修改原變量);
tvarage11varageAsStr()//ageAsStr#3411#34age11
tvarfoundtruevarfoundAsString()//#34true#34
tvararr[1,2,#39a#39]()//#341,2,a#34(引號代表字符串)
1
2
3
1
2
3
2、String():在可不知道要可以轉(zhuǎn)換的值會不會null和undefined情況下,還可以不用String(),String()都能夠?qū)⑷魏晤愋偷臄?shù)值可以轉(zhuǎn)換成string類型,String()遵循200元以內(nèi)原則:
如果只有g(shù)etname()方法,則動態(tài)鏈接庫toString()方法并直接返回相應(yīng)的結(jié)果;
如果不是值為null,則直接返回#34null#34
假如值為undefined,則前往#34undefined#34;
1
2
3
1
2
3
3、布爾類