在學習js的過程中經常遇到需要大量計算的問題,此時就需要用到那些常見的運算子。在寫**進行數學計算的時候輸入和輸出的資料型別要格外注意。整數和小數,資料型別不同結果也不一樣。有時會因為資料型別,導致寫出的**除錯的時候出現錯誤,不能實現要求的功能。
下面就乙個題目來說明:
題目:找出100-999之間的所有「水仙花數」。所謂水仙花數是指乙個三位 數,各位數字的立方和等於該數本身。(如153=1的3次方+5的3次方+3的3次方)並輸出這些數字。
題目思路很清晰明了,主要用到for迴圈和if判斷語句。
開始我也覺得很簡單,但上來寫出來的**卻無法得出我想要的結果。
錯誤**:
注意**中的兩行注釋,最初寫完的**中沒有那兩句,每行**前面的數字是我故意加上便於分析原因.(原**中沒有前面的數字序號)
這也導致,我除錯執行的時候老是不出結果,檢查**也沒發現問題.後來我直接給i賦值153(題目中的例子),再通過審查元素我讓發現,在**執行到第2行時,x的值是小數1.53,不是1,後面也出現了這種問題.我才發現原來是輸出的資料型別有問題.隨後我加了兩行取整的**,再除錯就成功了.
注意: 重要!!! 今後遇到各種運算問題時一定要注意!
常用的三種取整
1. math.round:四捨六入五取整
2. math.ceiling:向上取整,只要有小數都加1
3. math.floor:向下取整,總是捨去小數
修改後正確的**:
1. math.round:四捨六入五取整
2. math.ceiling:向上取整,只要有小數都加1
3. math.floor:向下取整,總是捨去小數
修改後正確的**:
資料型別轉換你需要注意幾點
根據容量由低到高的順序依次為 byte short int long float double int i 130 byte b i 報錯 需要賦值byte型別 byte b byte i 記憶體溢位,超出範圍的數字在輸出時就會發現值發生了變化。高 低 型別 變數名 低 高 無需強制轉換,會自動進行...
js 浮點數取整 JS 資料型別
數值字面量 8,9,10 字串字面量 大前端 布林字面量 true falsen換行ttab製表 單引號 雙引號 反斜槓由字母 數字 下劃線 符號組成,不能以數字形式開頭 字母區分大小寫,a和a表示不同 不能是關鍵字和保留字,關鍵字指的是js中有特殊功能的小詞語,比如 var for 等 保留字指的...
js中幾個需要注意的資料型別
undefined undefined型別只有乙個值。即undefined.所有已申明而沒有初始化的變數,預設值都為undefined 函式沒有明確返回值的時候,會預設返回undefined null也是object型別的一種 var s alert s underfinedfunction tes...