This question already has answers here:
How to avoid scientific notation for large numbers in JavaScript?
                                
                                    (21个回答)
                                
                        
                5年前关闭。
            
        

我的数据返回了JSON响应,但是当我尝试使用值(数字)之一时,响应将转换为科学计数法。我从未遇到过这样的事情,所以我将要发布正在发生的事情。

当我使用console.log(response)时,该值看起来像doctorid":2015031216033174968087,而当我尝试使用Doctorid时,该值则变为2.015031216033175e+21。即使我使用console.log(response.doctorid)在控制台中输出值,也会发生这种情况。知道什么可能导致这种行为吗?

最佳答案

与python和ruby不同,Javascript不支持任意精度的整数。可以在JS中精确表示的最大数值为9007199254740991。较大的数字具有近似表示形式,并使用科学计数法转换为字符串。

避免这种情况的唯一方法是将ID编码为JSON中的字符串:

"doctorid": "2015031216033174968087"

10-08 16:59