ใน Javascript ฉันไม่พบวิธีการตั้งค่าเนกาทีฟเป็นศูนย์?
-90 กลายเป็น 0
-45 กลายเป็น 0
0 กลายเป็น 0
90 กลายเป็น 90
มีอะไรอย่างนั้นหรือ? ฉันได้ปัดเศษตัวเลข
ใน Javascript ฉันไม่พบวิธีการตั้งค่าเนกาทีฟเป็นศูนย์?
-90 กลายเป็น 0
-45 กลายเป็น 0
0 กลายเป็น 0
90 กลายเป็น 90
มีอะไรอย่างนั้นหรือ? ฉันได้ปัดเศษตัวเลข
คำตอบ:
เพียงทำสิ่งที่ชอบ
value = value < 0 ? 0 : value;
หรือ
if (value < 0) value = 0;
หรือ
value = Math.max(0, value);
Math.max
อันนี้มากที่สุดเพราะต้องใช้การอ้างอิงvalue
เพียงครั้งเดียว
Math.max()
ฉันคิดว่าคุณสามารถใช้
var num = 90;
num = Math.max(0,num); // 90
var num = -90;
num = Math.max(0,num); // 0
Math.max(0, NaN)
และMath.max(0, undefined)
ผลตอบแทนNaN
ดังนั้นคุณอาจต้องการที่จะทำสิ่งที่ตามเส้นเหล่านี้:Math.max(0, num) || 0
หากคุณต้องการฉลาด:
num = (num + Math.abs(num)) / 2;
อย่างไรก็ตามMath.max
หรือตัวดำเนินการที่มีเงื่อนไขจะเข้าใจได้มากขึ้น
นอกจากนี้ยังมีปัญหาด้านความแม่นยำสำหรับตัวเลขจำนวนมาก
Math.positive = function(num) {
return Math.max(0, num);
}
// or
Math.positive = function(num) {
return num < 0 ? 0 : num;
}
x < 0 ? 0 : x
ทำงาน
จำลบศูนย์
function isNegativeFails(n) {
return n < 0;
}
function isNegative(n) {
return ((n = +n) || 1 / n) < 0;
}
isNegativeFails(-0); // false
isNegative(-0); // true
Math.max(-0, 0); // 0
Math.min(-0, 0); // -0
ที่มา: http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/
ฉันไม่เชื่อว่าฟังก์ชันดังกล่าวมีอยู่ในวัตถุคณิตศาสตร์ดั้งเดิม คุณควรเขียนสคริปต์เพื่อเติมฟังก์ชันหากคุณจำเป็นต้องใช้