Hướng dẫn how to compare negative numbers in javascript - cách so sánh số âm trong javascript

Tôi chắc chắn đây là một vấn đề đơn giản, nhưng tôi đang so sánh các số âm trong JavaScript tức là .:

var num1 = -83.778;
var num2 = -83.356;

if(num1 < num2)
{
    // Take action 1
}
else
{
    // Take action 2
}

Kịch bản này sẽ luôn có hành động 2, mặc dù num1 nhỏ hơn num2. Những gì đang xảy ra ở đây?

Hướng dẫn how to compare negative numbers in javascript - cách so sánh số âm trong javascript

Trong silico

50.2k9 Huy hiệu vàng147 Huy hiệu bạc142 Huy hiệu đồng9 gold badges147 silver badges142 bronze badges

Hỏi ngày 9 tháng 8 năm 2010 lúc 17:07Aug 9, 2010 at 17:07

8

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
0 hoạt động như thế nào? Có thể số của bạn đang biến thành chuỗi ở đâu đó.

Đã trả lời ngày 9 tháng 8 năm 2010 lúc 17:30Aug 9, 2010 at 17:30

SethsethSeth

43.5K10 Huy hiệu vàng85 Huy hiệu bạc119 Huy hiệu đồng10 gold badges85 silver badges119 bronze badges

2

Trường hợp này cũng hoạt động khi chúng tôi muốn so sánh các ký tự đã ký cho cả số dương và số âm. Đối với trường hợp của tôi, tôi có các số như +3, +4, 0, -1, v.v.

Trực tiếp sử dụng

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
1 sẽ so sánh các giá trị này dưới dạng chuỗi và chúng tôi sẽ nhận được đầu ra so sánh chuỗi.

Do đó để so sánh các số đã ký., So sánh chúng thông qua

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
0

Đã trả lời ngày 10 tháng 7 năm 2020 lúc 7:09Jul 10, 2020 at 7:09

Hướng dẫn how to compare negative numbers in javascript - cách so sánh số âm trong javascript

Tôi có cùng một vấn đề. Giải pháp cho điều đó:

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}

Bây giờ ation 1 sẽ được sử dụng.

Đã trả lời ngày 21 tháng 1 lúc 8:54Jan 21 at 8:54

Hướng dẫn how to compare negative numbers in javascript - cách so sánh số âm trong javascript

Kiểm tra xem giá trị có phải là số âm # không

Để kiểm tra xem giá trị có phải là số âm hay không, hãy gọi phương thức

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
3, chuyển nó là giá trị dưới dạng tham số. Phương thức
var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4 trả về
var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
5 nếu đối số được cung cấp là số âm hoặc có thể được chuyển đổi thành một.

Copied!

function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false

Trong đoạn mã, chúng tôi sử dụng phương thức Math.Sign để kiểm tra xem giá trị có phải là số âm không.

Đối số duy nhất mà phương thức thực hiện là

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
6. Nếu giá trị được cung cấp không phải là một số, nó sẽ được chuyển đổi thành một số.

Nếu phương thức

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4 trả về
var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
5, thì đối số được cung cấp là số âm hoặc có thể được chuyển đổi thành một.

Nếu bạn muốn đảm bảo rằng tham số được truyền là loại

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
6, bạn có thể thêm một kiểm tra bổ sung cho câu lệnh

Copied!

function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
0.

Copied!

function isNegative(num) { if (typeof num === 'number' && Math.sign(num) === -1) { return true; } return false; }

Chúng tôi sử dụng toán tử logic và (&&) để chuỗi một điều kiện khác. Trước khi gọi phương thức

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4, chúng tôi kiểm tra xem đối số được cung cấp có phải là số không.

Phương thức

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4 có 5 giá trị trả về có thể:

  • nó trả về

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    3 nếu đối số là tích cực
  • nó trả về
    var num1 = -83.778;
    var num2 = -83.356;
    if((num1 - num2) < 0)
    {
        // Take action 1
    }
    else
    {
        // Take action 2
    }
    
    5 nếu đối số là âm
  • nó trả về

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    5 nếu đối số là

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    5
  • nó trả về

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    7 nếu đối số là

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    7
  • Trong tất cả các trường hợp khác, nó trả về

    Copied!

    function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
    9 (không phải là một số)

Dưới đây là một số ví dụ về việc gọi phương thức

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4 trực tiếp.

Copied!

console.log(Math.sign(-5)); // 👉️ -1 console.log(Math.sign(5)); // 👉️ 1 console.log(Math.sign('-5')); // 👉️ -1 console.log(Math.sign('test')); // 👉️ NaN console.log(Math.sign(0)); // 👉️ 0

Nếu giá trị được cung cấp không phải là một số, phương thức sẽ cố gắng chuyển đổi nó thành một.

Phương pháp

var num1 = -83.778;
var num2 = -83.356;
if((num1 - num2) < 0)
{
    // Take action 1
}
else
{
    // Take action 2
}
4 không được hỗ trợ trong Internet Explorer. Nếu bạn cần hỗ trợ trình duyệt, hãy sử dụng phương pháp tiếp theo thay thế.

Để kiểm tra xem giá trị có phải là số âm hay không, hãy so sánh nó với

Copied!

function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
5, ví dụ:

Copied!

function isNegative(num) { if (typeof num === 'number' && Math.sign(num) === -1) { return true; } return false; }
3. Nếu giá trị ở phía bên trái của toán tử ít hơn so với không phải là một số, nó sẽ được chuyển đổi thành một và so sánh với

Copied!

function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
5. Nếu biểu thức trả về

Copied!

function isNegative(num) { if (typeof num === 'number' && Math.sign(num) === -1) { return true; } return false; }
5, giá trị là số âm.

Copied!

// Supported in IE function isNegative(num) { if (num < 0) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false

Chúng tôi sử dụng ít hơn (

Nếu giá trị bên trái không phải là một số, JavaScript sẽ cố gắng chuyển đổi nó thành một.

Nếu bạn chỉ mong đợi lấy số làm đối số, hãy thêm một điều kiện khác vào câu lệnh

Copied!

function isNegative(num) { if (Math.sign(num) === -1) { return true; } return false; } console.log(isNegative(-5)); // 👉️ true console.log(isNegative(5)); // 👉️ false console.log(isNegative('-5')); // 👉️ true console.log(isNegative('test')); // 👉️ false
0.

Copied!

function isNegative(num) { if (typeof num === 'number' && num < 0) { return true; } return false; }

Dưới đây là một số ví dụ khác về việc sử dụng ít hơn người vận hành.

Copied!

console.log(-1 < 0); // 👉️ true console.log('-1' < 0); // 👉️ true console.log('test' < 0); // 👉️ false console.log('' < 0); // 👉️ false console.log(null < 0); // 👉️ false

Nếu bạn quan tâm để đọc thêm về cách ít hơn so với toán tử chuyển đổi các giá trị không thuộc cùng loại khi so sánh chúng, hãy xem phần này của tài liệu MDN.

Đọc thêm #

  • Kiểm tra xem chuỗi có phải là số hợp lệ trong javascript không
  • Kiểm tra xem giá trị có phải là số dương trong JavaScript không