Hướng dẫn how do i fix nan error in javascript? - làm cách nào để sửa lỗi nan trong javascript?

Tôi có mã này trong JavaScript:

SolarPanels = parseInt(lRemainingWidth / (panel_width + ( 2 * lPanelInterSpace)));

Và sau đó tôi cảnh báo giá trị

alert("SolarPanels "+SolarPanels); 
3 cho
alert("SolarPanels "+SolarPanels); 
4 làm đầu ra,

alert("SolarPanels "+SolarPanels); 

Dòng 1 này là một phần nhỏ của tính toán lớn, nhưng mã của tôi dường như thất bại ở đây, với việc sử dụng các cảnh báo, tôi đã đọc các giá trị của

alert("SolarPanels "+SolarPanels); 
3,
alert("SolarPanels "+SolarPanels); 
6,
alert("SolarPanels "+SolarPanels); 
7 và
alert("SolarPanels "+SolarPanels); 
8 như sau:

lRemainingwidth = 17.4.320227272727276
SolarPanels = 0
panel_width = 1.65
lPanelInterSpace = 0.02

Tôi nghĩ rằng nó phải làm với 2 chấm trong

alert("SolarPanels "+SolarPanels); 
6, dù bằng cách nào, tôi không biết làm thế nào để sửa nó. Tại sao
alert("SolarPanels "+SolarPanels); 
6 có 2 chấm?


Cập nhật :

Đây là phần tính toán độ rộng của Lremained:

    if(HalforDouble === "Yes")
    {
        lRemainingWidth = (roof_ridge /2) + ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge);            
    }

    else
    {
        lRemainingWidth = roof_ridge + (2 * ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge));
    }

Các giá trị ở đây là:

lRemainingWidth = 0
roof_ridge = 17
lRemainingHeight = 20.769000000000002
lRoofEdgeDegrees = 83.5169263071276
lRoofEdge = 0.2

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận The isNan() method is used to check the given number is NaN or not. If isNaN() returns true for “number” then it assigns the value 0.

    • Example:

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      1

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      3

      NAN (không phải là một số) thường được sử dụng để chỉ ra một điều kiện lỗi cho một hàm sẽ trả về một số hợp lệ nhưng nó có thể được chuyển đổi thành 0 bằng cách sử dụng JavaScript. Trong bài viết này, chúng tôi sẽ chuyển đổi NAN thành 0.

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      8

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      9

    • Output:
      0
      0

    Sử dụng phương thức isnan (): Phương thức isnan () được sử dụng để kiểm tra số đã cho là nan hay không. Nếu isnan () trả về true cho số số thì thì nó gán giá trị 0. If “number” is any falsey value, it will be assigned to 0.

    • Example:

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      1

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      3

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
          if(HalforDouble === "Yes")
          {
              lRemainingWidth = (roof_ridge /2) + ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge);            
          }
      
          else
          {
              lRemainingWidth = roof_ridge + (2 * ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge));
          }
      
      4

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      8

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      9

    • Output:
      0
      0

    lRemainingwidth = 17.4.320227272727276
    SolarPanels = 0
    panel_width = 1.65
    lPanelInterSpace = 0.02
    
    2
    lRemainingwidth = 17.4.320227272727276
    SolarPanels = 0
    panel_width = 1.65
    lPanelInterSpace = 0.02
    
    5
    lRemainingwidth = 17.4.320227272727276
    SolarPanels = 0
    panel_width = 1.65
    lPanelInterSpace = 0.02
    
    6
    Here number is checked via ternary operator, similar to 1, if NaN it converts to 0.

    • Example:

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      1

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      3

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingWidth = 0
      roof_ridge = 17
      lRemainingHeight = 20.769000000000002
      lRoofEdgeDegrees = 83.5169263071276
      lRoofEdge = 0.2
      
      2

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      2
      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      8

      lRemainingwidth = 17.4.320227272727276
      SolarPanels = 0
      panel_width = 1.65
      lPanelInterSpace = 0.02
      
      9

    • Output:
      0
      0

    Lưu ý: Trong khi thực thi mã trên IDE hoặc trên trình duyệt của chúng tôi, hãy kiểm tra bảng điều khiển (F12) để xem kết quả. While executing the code on our IDE or on your browser, check console (F12) to see the result.


    Thuộc tính toàn cầu

    alert("SolarPanels "+SolarPanels); 
    
    4 là một giá trị đại diện cho không phải là một số.
    alert("SolarPanels "+SolarPanels); 
    
    4
    property is a value representing Not-A-Number.

    Thử nó

    Sự mô tả

    alert("SolarPanels "+SolarPanels); 
    
    4 là một tài sản của đối tượng toàn cầu. Nói cách khác, nó là một biến trong phạm vi toàn cầu.

    Giá trị ban đầu của

    alert("SolarPanels "+SolarPanels); 
    
    4 không phải là một số-giống như giá trị của
    lRemainingWidth = 0
    roof_ridge = 17
    lRemainingHeight = 20.769000000000002
    lRoofEdgeDegrees = 83.5169263071276
    lRoofEdge = 0.2
    
    9. Trong các trình duyệt hiện đại,
    alert("SolarPanels "+SolarPanels); 
    
    4 là một tài sản không thể cấu hình, không có thể đi được. Ngay cả khi điều này không phải là trường hợp, tránh ghi đè nó. Nó là khá hiếm khi sử dụng
    alert("SolarPanels "+SolarPanels); 
    
    4 trong một chương trình.

    Có năm loại hoạt động khác nhau trả về

    alert("SolarPanels "+SolarPanels); 
    
    4:

    • Chuyển đổi số không thành công (ví dụ: những cái rõ ràng như
      0
      3,
      0
      4 hoặc những cái ẩn như
      0
      5)
    • Hoạt động toán học trong đó kết quả không phải là một số thực (ví dụ:
      0
      6)
    • Mẫu không xác định (ví dụ:
      0
      7,
      0
      8,
      0
      9,
      0
      0)
    • Một phương pháp hoặc biểu thức có toán hạng hoặc bị ép buộc
      alert("SolarPanels "+SolarPanels); 
      
      4 (ví dụ:
      0
      2,
      0
      3) - Điều này có nghĩa là
      alert("SolarPanels "+SolarPanels); 
      
      4 là truyền nhiễm
    • Các trường hợp khác trong đó giá trị không hợp lệ được biểu diễn dưới dạng một số (ví dụ: ngày không hợp lệ
      0
      5,
      0
      6)

    alert("SolarPanels "+SolarPanels); 
    
    4 và các hành vi của nó không được phát minh bởi JavaScript. Ngữ nghĩa của nó trong số học điểm nổi (bao gồm cả
    0
    8) được chỉ định bởi IEEE 754. ________ 14 Hành vi của

    • Nếu
      alert("SolarPanels "+SolarPanels); 
      
      4 có liên quan đến hoạt động toán học (nhưng không phải là hoạt động bitwise), kết quả thường là
      alert("SolarPanels "+SolarPanels); 
      
      4. (Xem ví dụ ngược bên dưới.)
    • Khi
      alert("SolarPanels "+SolarPanels); 
      
      4 là một trong những toán hạng của bất kỳ so sánh quan hệ nào (
      0
      3,
      0
      4,
      0
      5,
      0
      6), kết quả luôn là
      0
      7.
    • alert("SolarPanels "+SolarPanels); 
      
      4 so sánh không đồng đều (thông qua
      0
      9,
      NaN === NaN; // false
      Number.NaN === NaN; // false
      isNaN(NaN); // true
      isNaN(Number.NaN); // true
      Number.isNaN(NaN); // true
      
      function valueIsNaN(v) {
        return v !== v;
      }
      valueIsNaN(1); // false
      valueIsNaN(NaN); // true
      valueIsNaN(Number.NaN); // true
      
      0,
      NaN === NaN; // false
      Number.NaN === NaN; // false
      isNaN(NaN); // true
      isNaN(Number.NaN); // true
      Number.isNaN(NaN); // true
      
      function valueIsNaN(v) {
        return v !== v;
      }
      valueIsNaN(1); // false
      valueIsNaN(NaN); // true
      valueIsNaN(Number.NaN); // true
      
      1 và
      NaN === NaN; // false
      Number.NaN === NaN; // false
      isNaN(NaN); // true
      isNaN(Number.NaN); // true
      Number.isNaN(NaN); // true
      
      function valueIsNaN(v) {
        return v !== v;
      }
      valueIsNaN(1); // false
      valueIsNaN(NaN); // true
      valueIsNaN(Number.NaN); // true
      
      2) với bất kỳ giá trị nào khác - bao gồm cả giá trị
      alert("SolarPanels "+SolarPanels); 
      
      4 khác.

    alert("SolarPanels "+SolarPanels); 
    
    4 cũng là một trong những giá trị giả mạo trong JavaScript.

    Ví dụ

    Thử nghiệm chống lại NAN

    Để cho biết nếu một giá trị là

    alert("SolarPanels "+SolarPanels); 
    
    4, hãy sử dụng
    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    6 hoặc
    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    7 để xác định rõ nhất liệu một giá trị là
    alert("SolarPanels "+SolarPanels); 
    
    4-hoặc, vì
    alert("SolarPanels "+SolarPanels); 
    
    4 là giá trị duy nhất so sánh không đồng đều với chính nó, bạn có thể thực hiện tự so sánh như
    isNaN("hello world"); // true
    Number.isNaN("hello world"); // false
    
    0.

    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    

    Tuy nhiên, xin lưu ý sự khác biệt giữa

    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    7 và
    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    6: Cái trước sẽ trả lại
    isNaN("hello world"); // true
    Number.isNaN("hello world"); // false
    
    3 nếu giá trị hiện tại Hiện tại
    alert("SolarPanels "+SolarPanels); 
    
    4:

    isNaN("hello world"); // true
    Number.isNaN("hello world"); // false
    

    Vì lý do tương tự, việc sử dụng giá trị lớn sẽ gây ra lỗi với

    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    7 chứ không phải với
    NaN === NaN; // false
    Number.NaN === NaN; // false
    isNaN(NaN); // true
    isNaN(Number.NaN); // true
    Number.isNaN(NaN); // true
    
    function valueIsNaN(v) {
      return v !== v;
    }
    valueIsNaN(1); // false
    valueIsNaN(NaN); // true
    valueIsNaN(Number.NaN); // true
    
    6:

    alert("SolarPanels "+SolarPanels); 
    
    0

    Ngoài ra, một số phương thức mảng không thể tìm thấy

    alert("SolarPanels "+SolarPanels); 
    
    4, trong khi các phương thức khác có thể. Cụ thể, những cái tìm chỉ số (
    alert("SolarPanels "+SolarPanels); 
    
    01,
    alert("SolarPanels "+SolarPanels); 
    
    02) không thể tìm thấy
    alert("SolarPanels "+SolarPanels); 
    
    4, trong khi những cái tìm giá trị (
    alert("SolarPanels "+SolarPanels); 
    
    04) có thể:

    alert("SolarPanels "+SolarPanels); 
    
    1

    Để biết thêm thông tin về

    alert("SolarPanels "+SolarPanels); 
    
    4 và so sánh của nó, hãy xem so sánh và giống nhau bình đẳng.

    Giá trị nan khác biệt có thể quan sát được

    Có một động lực cho

    alert("SolarPanels "+SolarPanels); 
    
    4 không đồng đều với chính nó. Có thể tạo ra hai số điểm nổi với các biểu diễn nhị phân khác nhau nhưng cả hai đều là
    alert("SolarPanels "+SolarPanels); 
    
    4, bởi vì trong mã hóa IEEE 754, bất kỳ số điểm nổi nào với số mũ
    alert("SolarPanels "+SolarPanels); 
    
    08 và Mantissa khác không là
    alert("SolarPanels "+SolarPanels); 
    
    4. Trong JavaScript, bạn có thể thực hiện thao tác cấp độ bit bằng các mảng được đánh máy.

    alert("SolarPanels "+SolarPanels); 
    
    2

    Âm thầm thoát khỏi Nan

    alert("SolarPanels "+SolarPanels); 
    
    4 tuyên truyền thông qua các hoạt động toán học, do đó, thường đủ để kiểm tra
    alert("SolarPanels "+SolarPanels); 
    
    4 một lần khi kết thúc tính toán để phát hiện các điều kiện lỗi. Trường hợp duy nhất trong đó
    alert("SolarPanels "+SolarPanels); 
    
    4 được thoát khỏi âm thầm là khi sử dụng số mũ với số mũ là
    alert("SolarPanels "+SolarPanels); 
    
    13, ngay lập tức trả về
    alert("SolarPanels "+SolarPanels); 
    
    14 mà không kiểm tra giá trị của cơ sở.

    Thông số kỹ thuật

    Sự chỉ rõ
    Thông số kỹ thuật ngôn ngữ Ecmascript # sec-value-properies-of-the-global-expect-nan
    # sec-value-properties-of-the-global-object-nan

    Tính tương thích của trình duyệt web

    Bảng BCD chỉ tải trong trình duyệt

    Xem thêm

    Làm cách nào để loại bỏ lỗi NAN?

    Nan có nghĩa là không phải là một số, điều này là do bên trong chức năng khối lập phương của bạn, bạn không gọi hàm vuông, nhưng nhận được nội dung của nó.Thay đổi trả về x * vuông;với return x * vuông (x);Và nó nên hoạt động.Change return x * square; with return x * square(x); and it should work.

    Điều gì gây ra lỗi NAN trong JavaScript?

    Có năm loại hoạt động khác nhau trả về NAN: chuyển đổi số không thành công (ví dụ: các loại rõ ràng như ParseInt ("blabla"), số (không xác định) hoặc các hoạt động toán học như toán học.Số thực (ví dụ: Toán học.Failed number conversion (e.g. explicit ones like parseInt("blabla") , Number(undefined) , or implicit ones like Math. abs(undefined) ) Math operation where the result is not a real number (e.g. Math.

    Nan có phải là lỗi trong JavaScript không?

    NAN là một giá trị lỗi có nghĩa là không phải là một số.Tuy nhiên, JavaScript coi loại NAN là số.Infinity là một giá trị lớn đến mức không thể được thể hiện bằng các số JavaScript.. However, JavaScript considers the type of NaN to be number. Infinity is a value so big it can't be represented by JavaScript numbers.

    JavaScript Nan có nghĩa là gì?

    Trong JavaScript, Nan là viết tắt của "không phải là số".Trong JavaScript, NAN là một con số không phải là một số hợp pháp.Tài sản NAN toàn cầu giống như số.Not-a-Number". In JavaScript, NaN is a number that is not a legal number. The Global NaN property is the same as the Number.