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

Double เป็นประเภทข้อมูลดั้งเดิมที่ใช้ในการจัดเก็บตัวเลขเศษส่วนที่มีจุดลอยตัวที่มีความแม่นยำสองเท่า (มักเป็น 64 บิต)


14
แปลงทศนิยมให้เป็นสองเท่า
ฉันต้องการใช้ a Track-Barเพื่อเปลี่ยนFormความทึบของ นี่คือรหัสของฉัน: decimal trans = trackBar1.Value / 5000; this.Opacity = trans; เมื่อฉันสร้างแอปพลิเคชันมันทำให้เกิดข้อผิดพลาดต่อไปนี้: ไม่สามารถแปลงประเภทdecimalเป็นdouble ผมได้ลองใช้transและdoubleแต่แล้วControlไม่ทำงาน รหัสนี้ทำงานได้ดีในโครงการ VB.NET ที่ผ่านมา

5
ทำไม Math.round (0.49999999999999994) ส่งคืน 1
ในโปรแกรมต่อไปนี้คุณจะเห็นว่าแต่ละค่าน้อยกว่า.5จะถูกปัดเศษลงยกเว้น0.5จะถูกปัดเศษลงยกเว้น for (int i = 10; i >= 0; i--) { long l = Double.doubleToLongBits(i + 0.5); double x; do { x = Double.longBitsToDouble(l); System.out.println(x + " rounded is " + Math.round(x)); l--; } while (Math.round(x) > i); } พิมพ์ 10.5 rounded is 11 10.499999999999998 rounded is 10 9.5 rounded …

26
วิธีการจัดรูปแบบตัวเลขทศนิยมให้เป็นสตริงโดยไม่มีทศนิยม 0 ที่ไม่จำเป็น
64 บิตคู่สามารถเป็นตัวแทนของจำนวนเต็ม +/- 2 53ตรง จากข้อเท็จจริงนี้ฉันเลือกที่จะใช้ double type เป็น single type สำหรับทุกประเภทของฉันเนื่องจากเลขจำนวนเต็มที่ใหญ่ที่สุดของฉันคือแบบ 32 บิต แต่ตอนนี้ฉันต้องพิมพ์จำนวนเต็มหลอกเหล่านี้ แต่ปัญหาคือพวกเขายังผสมกับคู่จริง ดังนั้นฉันจะพิมพ์คู่เหล่านี้อย่างดีใน Java ได้อย่างไร ฉันได้ลองString.format("%f", value)แล้วซึ่งอยู่ใกล้ยกเว้นฉันได้รับจำนวนมากต่อท้ายศูนย์สำหรับค่าขนาดเล็ก นี่คือตัวอย่างผลลัพธ์ของ %f 232.00000000 0.18000000000 1237875192.0 4.5800000000 0.00000000 1.23450000 สิ่งที่ฉันต้องการคือ: 232 0.18 1237875192 4.58 0 1.2345 แน่นอนว่าฉันสามารถเขียนฟังก์ชันเพื่อตัดค่าศูนย์เหล่านั้น แต่นั่นเป็นการสูญเสียประสิทธิภาพเนื่องจากการจัดการสตริง ฉันสามารถทำได้ดีกว่าด้วยรหัสรูปแบบอื่นได้หรือไม่ แก้ไข คำตอบของ Tom E. และ Jeremy S. นั้นไม่สามารถยอมรับได้เนื่องจากพวกเขาทั้งคู่ปัดทศนิยมเป็นทศนิยม 2 ตำแหน่งโดยพลการ โปรดเข้าใจปัญหาก่อนที่จะตอบ …

5
ตัวระบุรูปแบบที่ถูกต้องสำหรับ double ใน printf
ตัวระบุรูปแบบที่ถูกต้องสำหรับdoubleใน printf คืออะไร มัน%fหรือมันคือ%lf? ฉันเชื่อว่ามัน%fแต่ฉันไม่แน่ใจ ตัวอย่างโค้ด #include <stdio.h> int main() { double d = 1.4; printf("%lf", d); // Is this wrong? }

27
การปัดเศษค่าสองเท่าเป็นจำนวนทศนิยมสิบตำแหน่งอย่างรวดเร็ว
ทุกคนสามารถบอกวิธีการปัดค่าสองเท่าเป็นจำนวนทศนิยมใน Swift ได้หรือไม่ ฉันมี: var totalWorkTimeInHours = (totalWorkTime/60/60) ด้วยtotalWorkTimeการเป็น NSTimeInterval (สองครั้ง) เป็นวินาที totalWorkTimeInHours จะให้เวลาฉัน แต่ให้เวลากับฉันในจำนวนที่แม่นยำเช่น 1.543240952039 ...... ฉันจะปัดเศษลงเพื่อบอกว่า 1.543 เมื่อฉันพิมพ์ได้totalWorkTimeInHoursอย่างไร

21
ตรวจสอบว่า double (หรือ float) เป็น NaN ใน C ++
มีฟังก์ชั่น isnan () หรือไม่? ป.ล. : ฉันอยู่ในMinGW (ถ้านั่นสร้างความแตกต่าง) ฉันได้นี้แก้ไขได้โดยใช้ isNaN () จาก<math.h>ที่ไม่ได้อยู่ใน<cmath>ที่ฉันได้รับ#includeไอเอ็นจีในตอนแรก
368 c++  double  nan 

6
สองเท่ากับ BigDecimal?
ฉันต้องคำนวณตัวแปรทศนิยมบางอย่างและเพื่อนร่วมงานของฉันแนะนำให้ฉันใช้BigDecimalแทนdoubleเพราะมันจะแม่นยำมากขึ้น แต่ฉันต้องการรู้ว่ามันคืออะไรและทำอย่างไรให้ได้ประโยชน์สูงสุดBigDecimal?



12
เมื่อใดฉันจึงควรใช้สองเท่าแทนทศนิยม
ฉันสามารถตั้งชื่อข้อดีสามข้อให้กับการใช้double(หรือfloat) แทนdecimal: ใช้หน่วยความจำน้อยลง เร็วขึ้นเนื่องจากการดำเนินการทางคณิตศาสตร์ของจุดลอยตัวได้รับการสนับสนุนโดยตัวประมวลผล สามารถแสดงช่วงของตัวเลขที่มากขึ้น แต่ข้อดีเหล่านี้ดูเหมือนจะใช้เฉพาะกับการคำนวณการดำเนินการที่เข้มข้นเช่นที่พบในซอฟต์แวร์การสร้างแบบจำลอง แน่นอนไม่ควรใช้คู่ผสมเมื่อต้องการความแม่นยำเช่นการคำนวณทางการเงิน ดังนั้นมีเหตุผลเชิงปฏิบัติใดที่เคยเลือกdouble(หรือfloat) แทนที่จะdecimalใช้แอปพลิเคชัน "ปกติ" แก้ไขเพื่อเพิ่ม: ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมทั้งหมดฉันเรียนรู้จากพวกเขา คำถามอีกข้อหนึ่ง: มีคนเพียงไม่กี่คนที่ชี้ให้เห็นว่าการเป็นตัวแทนจำนวนจริงนั้นแม่นยำยิ่งขึ้น เมื่อประกาศฉันจะคิดว่าพวกเขามักจะเป็นตัวแทนของพวกเขาอย่างถูกต้องเช่นกัน แต่มันเป็นความจริงหรือไม่ที่ความแม่นยำอาจลดลง (บางครั้งมีนัยสำคัญ) เมื่อดำเนินการกับจุดลอยตัว?

7
ปัดเศษทศนิยมสองตำแหน่งใน C # หรือไม่
ฉันต้องการปัดเศษสองค่าเป็นทศนิยมสองตำแหน่งใน c # ฉันจะทำอย่างไร double inputValue = 48.485; หลังจากรอบขึ้น inputValue = 48.49; ที่เกี่ยวข้อง: c # - ฉันจะปัดเศษทศนิยมเป็นทศนิยม 2 ตำแหน่งได้อย่างไร (สำหรับผลลัพธ์บนหน้า)
258 c#  double  rounding 

18
ฉันจะแยกสตริงที่มีจุดทศนิยมให้เป็นสองเท่าได้อย่างไร
ฉันต้องการที่จะแยกสตริงเหมือน"3.5"คู่ อย่างไรก็ตาม double.Parse("3.5") ให้ผลตอบแทน 35 และ double.Parse("3.5", System.Globalization.NumberStyles.AllowDecimalPoint) FormatExceptionพ่น ตอนนี้ตำแหน่งที่ตั้งของคอมพิวเตอร์ของฉันถูกตั้งค่าเป็นภาษาเยอรมันโดยที่ใช้เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม อาจต้องทำอะไรกับมันและdouble.Parse()คาดหวังว่าจะ"3,5"เป็นอินพุท แต่ฉันไม่แน่ใจ ฉันจะแยกสตริงที่มีตัวเลขทศนิยมที่อาจหรือไม่สามารถจัดรูปแบบตามที่ระบุในสถานที่ปัจจุบันของฉันได้อย่างไร
231 c#  string  parsing  double 


14
ฉันจะพิมพ์ค่าสองค่าโดยไม่มีเครื่องหมายทางวิทยาศาสตร์โดยใช้ Java ได้อย่างไร
ฉันต้องการพิมพ์ค่าสองเท่าใน Java โดยไม่มีแบบฟอร์มชี้แจง double dexp = 12345678; System.out.println("dexp: "+dexp); มันแสดงให้เห็นโน้ต E 1.2345678E7นี่: ฉันต้องการพิมพ์แบบนี้: 12345678 วิธีที่ดีที่สุดในการป้องกันสิ่งนี้คืออะไร?
223 java  double 

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