[英]Float numbers is Javascript are being rounded
我在javascript數組中遇到了一些帶有浮點數的奇怪行為。
當我像這樣遍歷數組時:
$.each(values, function(key,data) {
console.log(key +": "+data);
})
我正確地看到了數字,如下所示:
4: 39.9283296
spline:167 5: -3.4983312
spline:167 6: 823.487609863281
但是當我嘗試像這樣使用數組索引直接訪問數據時:
console.log(data[4] + " " +data[5] + " " +data[6])
數字四舍五入:
2 8 3
如果有人可以解釋這里發生的事情以及我如何訪問原始數據,我將非常感激。 TIA!
看起來您正在嘗試訪問類似數組的字符串。 您的data
變量包含一個字符串,因此,當您調用data[4]
,您將在字符串中獲得第5個字符。
如果需要,可以使用parseFloat
方法將字符串解析為浮點數。
我從評論開始,但我只寫一個答案。
您正在處理data
並將其視為數組,而實際上這只是一個值。 檢查您的第一個值: 39.9283296
。 索引4/5/6相應地為2/8/3。 那就是您所看到的,而不是四舍五入的“浮動”數字。
檢查您從何處獲取data
,看起來您只需要data
本身即可。
您的代碼是這樣的:
$.each(values, function(key,data) {
console.log(key +": "+data);
})
因此,讓我們看一下輸出的第一行:
4: 39.9283296
好的,什么是key
,什么是data
?
key: "4"
data: "39.9283296" // I assume it's string according to result you got
那么, console.log(data[4] + " " +data[5] + " " +data[6])
給您什么呢?
"39.9283296"[4] // 2
^
"39.9283296"[5] // 8
^
"39.9283296"[6] // 3
^
您知道了, 2 8 3
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.