ข้อกำหนด: แปลงสตริง (สตริงเพียงหนึ่งทศนิยม) เพื่อลอยเพื่อทำการคำนวณแปลงผลลัพธ์เป็นสตริง (เก็บทศนิยมหนึ่งทศนิยม)
อัปโหลดรหัสโดยตรง:
float f1 = 0.1f; string a1 = "1.5"; system.out.println (float.parsefloat (a1)+f1);
คำตอบ: 1.6
float f1 = 0.1f; string a1 = "1.6"; system.out.println (float.parsefloat (a1)+f1);
คำตอบ: 1.7
พูดตามตรงในตอนแรกฉันรู้สึกว่ารหัสนั้นดี ฉันลองใช้สตริงจำนวนมากจาก 0.1 แต่ทั้งหมดนั้นถูกต้อง
อย่างไรก็ตามเมื่อ A1 = "1.7" ปัญหาเกิดขึ้นผลลัพธ์ผลลัพธ์: 1.8000001
อืม? มีปัญหากับวิธีการแปลงหรือไม่? เป็นกิจวัตรประจำวันที่จะเดินไปรอบ ๆ อินเทอร์เน็ตเป็นเวลานาน
สิ่งนี้สามารถพิจารณาได้จากจำนวนตัวเลขและความแม่นยำที่เก็บรักษาไว้เท่านั้น ดังนั้นฉันจึงค้นพบ decimalformat
0 หมายเลข
# ตัวเลขไม่รวม 0
- ตัวยึดตำแหน่งสำหรับตัวแยกทศนิยม
ตัวยึดตำแหน่งสำหรับตัวคั่นกลุ่ม
- รูปแบบที่คั่น
- คำนำหน้าลบเริ่มต้น
% คูณด้วย 100 และแสดงเป็นเปอร์เซ็นต์
float f = 0.1f; string max = "1.7"; decimalformat df = new decimalformat ("######## 0.#"); String s = df.format (float.parsefloat (สูงสุด)+f); system.out.println (s);ผลลัพธ์: 1.8
ตกลงแก้ไขปัญหา!
วิธีการข้างต้นของสตริง Java เพื่อการทำงานแบบลอยเพื่อลอยคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น