คำถามติดแท็ก rounding

การปัดเศษค่าตัวเลขหมายถึงการแทนที่ด้วยค่าอื่นที่มีค่าเท่ากันโดยประมาณ แต่มีการแสดงที่สั้นกว่าง่ายกว่าหรือชัดเจนกว่า

21
ตัดทศนิยมสองตำแหน่งโดยไม่ต้องปัดเศษ
สมมติว่าฉันมีค่า 3.4679 และต้องการ 3.46 ฉันจะตัดทศนิยมให้เหลือสองตำแหน่งโดยไม่ต้องปัดเศษได้อย่างไร ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ทั้งสามให้ 3.47: void Main() { Console.Write(Math.Round(3.4679, 2,MidpointRounding.ToEven)); Console.Write(Math.Round(3.4679, 2,MidpointRounding.AwayFromZero)); Console.Write(Math.Round(3.4679, 2)); } สิ่งนี้ส่งคืน 3.46 แต่ดูเหมือนว่าจะสกปรกอย่างไร: void Main() { Console.Write(Math.Round(3.46799999999 -.005 , 2)); }
109 c#  math  rounding 

12
ตรวจสอบว่าตัวเลขเป็นจำนวนเต็มหรือไม่
ฉันประหลาดใจที่ได้รู้ว่า R ไม่ได้มาพร้อมกับฟังก์ชันที่มีประโยชน์ในการตรวจสอบว่าตัวเลขนั้นเป็นจำนวนเต็มหรือไม่ is.integer(66) # FALSE ไฟล์ความช่วยเหลือเตือน : is.integer(x)ไม่ได้ทดสอบว่าx มีตัวเลขจำนวนเต็มหรือไม่! สำหรับสิ่งนั้นให้ใช้roundดังในฟังก์ชัน is.wholenumber(x)ในตัวอย่าง ตัวอย่างมีฟังก์ชันที่กำหนดเองนี้เป็น "วิธีแก้ปัญหาชั่วคราว" is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol is.wholenumber(1) # is TRUE ถ้าฉันจะต้องเขียนฟังก์ชันเพื่อตรวจสอบจำนวนเต็มโดยสมมติว่าฉันไม่ได้อ่านความคิดเห็นด้านบนฉันจะเขียนฟังก์ชันที่จะไปตามเส้นของ check.integer <- function(x) { x == round(x) } แนวทางของฉันจะล้มเหลวที่ไหน คุณจะทำอะไรได้บ้างถ้าคุณอยู่ในรองเท้าสมมุติของฉัน?
106 r  integer  rounding 

9
Javascript: การจัดรูปแบบตัวเลขที่ปัดเศษเป็น N ทศนิยม
ใน JavaScript วิธีทั่วไปในการปัดเศษตัวเลขเป็น N ตำแหน่งทศนิยมมีดังนี้: function roundNumber(num, dec) { return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec); } แสดงข้อมูลโค้ด function roundNumber(num, dec) { return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec); } console.log(roundNumber(0.1 + 0.2, 2)); console.log(roundNumber(2.1234, 2)); เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายข้อมูลโค้ด อย่างไรก็ตามวิธีการนี้จะรอบไปสูงสุดของ N ตำแหน่งทศนิยมในขณะที่ฉันต้องการที่จะเสมอรอบ N ตำแหน่งทศนิยม ตัวอย่างเช่น "2.0" จะถูกปัดเศษเป็น "2" ความคิดใด ๆ …

17
วิธีการปัดเศษนาทีของวัตถุวันที่และเวลา
ฉันมีdatetimeวัตถุที่ผลิตโดยใช้strptime()ไฟล์. >>> tm datetime.datetime(2010, 6, 10, 3, 56, 23) สิ่งที่ฉันต้องทำคือปัดเศษนาทีให้ใกล้ที่สุดนาทีที่ 10 สิ่งที่ฉันทำจนถึงจุดนี้คือการหาค่านาทีและใช้ round () กับมัน min = round(tm.minute, -1) อย่างไรก็ตามเช่นเดียวกับตัวอย่างข้างต้นจะให้เวลาที่ไม่ถูกต้องเมื่อค่านาทีมากกว่า 56 เช่น 3:60 วิธีที่ดีกว่านี้คืออะไร? ไม่datetimeสนับสนุนเรื่องนี้?


11
จะปัดเศษขึ้นเป็น 10 (หรือ 100 หรือ X) ที่ใกล้ที่สุดได้อย่างไร
ฉันกำลังเขียนฟังก์ชันเพื่อลงจุดข้อมูล ฉันต้องการระบุจำนวนรอบที่ดีสำหรับแกน y maxที่มากกว่าค่าสูงสุดของชุดข้อมูล โดยเฉพาะฉันต้องการฟังก์ชันfooที่ทำหน้าที่ดังต่อไปนี้: foo(4) == 5 foo(6.1) == 10 #maybe 7 would be better foo(30.1) == 40 foo(100.1) == 110 ฉันได้ไปไกลถึง foo <- function(x) ceiling(max(x)/10)*10 สำหรับการปัดเศษเป็น 10 ที่ใกล้ที่สุด แต่จะใช้ไม่ได้กับช่วงเวลาการปัดเศษโดยพลการ มีวิธีที่ดีกว่านี้ใน R หรือไม่?
95 r  rounding 


5
ฉันจะปัดเศษเป็นจำนวนเต็มใน JavaScript ได้อย่างไร
ฉันมีรหัสต่อไปนี้เพื่อคำนวณเปอร์เซ็นต์ที่แน่นอน: var x = 6.5; var total; total = x/15*100; // Result 43.3333333333 สิ่งที่ฉันต้องการได้ผลลัพธ์คือจำนวนที่แน่นอน43และถ้าผลรวม43.5ควรจะปัดเศษเป็น44 มีวิธีทำใน JavaScript หรือไม่?


4
การแปลงลอยเป็นสตริงโดยไม่ต้องปัดเศษ
ฉันกำลังทำโปรแกรมที่ด้วยเหตุผลที่ไม่จำเป็นต้องอธิบายต้องใช้ float เพื่อแปลงเป็นสตริงเพื่อนับด้วย len () อย่างไรก็ตาม str (float (x)) ส่งผลให้ x ถูกปัดเศษเมื่อแปลงเป็นสตริงซึ่งจะทำให้ทุกอย่างหลุดออกไป มีใครรู้วิธีแก้ไขหรือไม่? นี่คือรหัสที่ใช้หากคุณต้องการทราบ: len(str(float(x)/3))

8
JavaScript: ปัดเศษเป็นทศนิยมจำนวนหนึ่ง แต่ตัดค่าศูนย์พิเศษออก
นี่คือสถานการณ์: ฉันได้รับเมื่อฉันควรจะได้รับ.9999999999999999 ฉันสามารถที่จะสูญเสียตำแหน่งทศนิยมของความแม่นยำได้ดังนั้นฉันกำลังใช้งานประเภทใดอยู่1.0.toFixed(15) ปัดเศษงาน 1.000000000000000แต่ปัญหาคือว่าฉันได้รับ มีวิธีปัดเศษเป็นทศนิยมกี่ตำแหน่ง แต่ตัดช่องว่างเพิ่มเติมหรือไม่? หมายเหตุ: .toPrecisionไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการระบุจำนวนตัวเลขหลังจุดทศนิยมเท่านั้น หมายเหตุ 2: ฉันใช้ไม่ได้.toPrecision(1)เพราะฉันต้องการรักษาความแม่นยำสูงสำหรับตัวเลขที่มีข้อมูลอยู่หลังจุดทศนิยม ตามหลักการแล้วจะมีตำแหน่งทศนิยมมากเท่าที่จำเป็น (สูงสุด 15 ตำแหน่ง)

2
วิธีที่ถูกต้อง / มาตรฐานในการตรวจสอบว่าความแตกต่างเล็กกว่าความแม่นยำของเครื่อง?
ฉันมักจะลงเอยในสถานการณ์ที่จำเป็นต้องตรวจสอบว่าความแตกต่างที่ได้รับนั้นสูงกว่าความแม่นยำของเครื่องหรือไม่ ดูเหมือนว่าเพื่อวัตถุประสงค์นี้ R .Machine$double.epsมีตัวแปรที่มีประโยชน์: อย่างไรก็ตามเมื่อฉันหันไปใช้ซอร์สโค้ด R เพื่อหาแนวทางเกี่ยวกับการใช้ค่านี้ฉันจะเห็นรูปแบบที่แตกต่างกันหลายแบบ ตัวอย่าง นี่คือตัวอย่างจากstatsห้องสมุด: t.test.R if(stderr < 10 *.Machine$double.eps * abs(mx)) chisq.test.R if(abs(sum(p)-1) > sqrt(.Machine$double.eps)) integrate.R rel.tol < max(50*.Machine$double.eps, 0.5e-28) lm.influence.R e[abs(e) < 100 * .Machine$double.eps * median(abs(e))] <- 0 princomp.R if (any(ev[neg] < - 9 * .Machine$double.eps * ev[1L])) เป็นต้น คำถาม วิธีการหนึ่งที่สามารถเข้าใจเหตุผลที่อยู่เบื้องหลังเหล่านั้นแตกต่างกันทั้งหมด10 *, 100 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.