ฉันจะปัดเศษเป็นจำนวนเต็มใน JavaScript ได้อย่างไร


93

ฉันมีรหัสต่อไปนี้เพื่อคำนวณเปอร์เซ็นต์ที่แน่นอน:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

สิ่งที่ฉันต้องการได้ผลลัพธ์คือจำนวนที่แน่นอน43และถ้าผลรวม43.5ควรจะปัดเศษเป็น44

มีวิธีทำใน JavaScript หรือไม่?

คำตอบ:


169

ใช้Math.round()ฟังก์ชันเพื่อปัดเศษผลลัพธ์ให้เป็นจำนวนเต็มที่ใกล้เคียงที่สุด


ช่วยฉันด้วย! :) ขอบคุณสำหรับเพื่อนลิงค์ MDN :)
Afzaal Ahmad Zeeshan

1
เครดิตสำหรับลิงก์ไปที่ @Jeremy ขอบคุณสำหรับการแทรก - มันทำให้การเริ่มต้นใน SO สนุกขึ้นมากที่จะได้คำตอบที่ห้าที่ฉันเคยเขียนได้รับคะแนนโหวตมากเท่าที่เคยทำซึ่งเป็นเพราะลิงก์ :-)
hmakholm ออกจาก Monica

2
OP ไม่ต้องการปัดเศษ? ถ้าเป็นเช่นนั้นMath.ceil ()จะเหมาะสมกว่า
martellalex

1
@martellalex: จากคำถาม OP ต้องการให้ 43.333 ปัดเศษเป็น 43 แต่ 43.5 เป็นปัดเศษเป็น 44 ซึ่งตรงกับพฤติกรรม Math.round () ของ ECMAScript ในการปัดเศษให้ใกล้ที่สุดและเรียกใช้จำนวนเต็มครึ่งหนึ่งที่แน่นอนไปยังอินฟินิตี้ที่เป็นบวก
hmakholm ออกจาก Monica

66
//method 1
Math.ceil(); // rounds up
Math.floor(); // rounds down
Math.round(); // does method 2 in 1 call

//method 2
var number = 1.5; //float
var a = parseInt(number); // to int
number -= a; // get numbers on right of decimal

if(number < 0.5) // if less than round down
    round_down();
else // round up if more than
    round_up();

อย่างใดอย่างหนึ่งหรือชุดค่าผสมจะช่วยแก้ปัญหาของคุณ




4

วิธีแก้ปัญหาที่รวบรัดมากสำหรับการปัดเศษลูกลอย x:

x = 0|x+0.5

หรือถ้าคุณแค่ต้องการปูพื้นลูกลอย

x = 0|x

นี่คือบิตหรือด้วย int 0 ซึ่งจะลดค่าทั้งหมดหลังทศนิยม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.