ฉันต้องได้ค่าอินพุตที่แน่นอนของ double spin box ฉันตั้งค่าทศนิยม 8 หลักสำหรับ Spinbox ของฉัน พอผมพิมพ์ 0,6000000 สิ่งที่ได้มาตอน debug คือ 0,59999999999998 ดังในรูป (บางทีก็เป็น 0,6000000000002)
ฉันพยายามแปลงค่านี้เป็น 0,60000000 โดยใช้ QString::number
และแปลงอีกครั้งเป็นสองเท่า สิ่งที่ได้รับคือค่าเก่าอีกครั้ง (0,59999999999998)
แต่เมื่อฉันพิมพ์ค่าเหล่านี้ออกมา มันจะพิมพ์ออกมาเป็น 0,60000000
เนื่องจากฉันมีการคำนวณหลังจากนั้น ดังนั้นฉันจึงต้องการค่าอินพุตที่แน่นอน ไม่เช่นนั้นการคำนวณของฉันจะผิด ในกรณีนี้ ผมควรจะเป็น 0,60000000 พอดี) ฉันจะทำเช่นนั้นได้อย่างไร?
QString valueAsText = locale().toString( p_value, 'f', decimals() );
ฉันได้valueAsText
ตรงตามที่ฉันพิมพ์ จากนั้นฉันสามารถรับส่วนจำนวนเต็มและส่วนทศนิยม (โดยใช้สตริง) แล้วแปลงอีกครั้งเป็นint
และมันได้ผล :) - person songvan   schedule 09.04.2019