簡體   English   中英

浮點數正在四舍五入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM