ปัดทศนิยมตัวที่ 3 ทิ้ง

   
?round(12.349-.005,2)
หรือ
a=12.346
?val(left(str(a,12,3),11))
kai
19 ต.ค. 44 เวลา 1:33:14 น. --> 127.0.0.1, , pa
   
   
แย้งคุณ kai นิดนึงนะครับ
1. ?round(12.349-.005,2) ไม่ถูกต้องนะครับ เพราะว่ามันไม่ครอบคลุมทุกเงื่อนไขครับ เพราะ Round(12.111-0.005) มันไม่เท่ากับ 12.11 ครับ
2. ?val(left(str(a,12,3),11)) พอได้ครับ แต่เป็นการแก้ปัญหาที่ไม่ดีนัก

ผมแก้ปัญหาแบบนักคณิตศาสตร์นะครับ มีวิธีคิดประมาณนี้
ถ้าต้องการทศนิยมแค่ n ตำแหน่ง และปัดทศนิยมตำแหน่งที่ n+1ทิ้ง ง่าย ๆ ดังนี้ครับ
1. ทำทศนิยมตำแหน่งที่ n+1 ให้เป็นตำแหน่งที่ 1 โดยการเอาไปคูณกับ 10 ยกกำลัง n ครับผม
2. จากนั้นก็นำค่าที่ได้ไปปัดเศษทิ้ง โดยใช้ Int() ครับผม
3. และนำค่าที่ได้จากข้อ 2 ไปหารด้วย 10 ยกกำลัง n
จบ

Function RoundDw
Para xNum,xDec
Return (xNum*(10**xDec))/(10**xDec)

xNum = ค่าที่จะนำไปตัดเศษทิ้งครับ
xDec = ตำแหน่งทศนิยมที่ต้องการ
เห็นมั๋ยครับว่ามันคือ คณิตศาสตร์
สุ่ยน้อย
13 ก.พ. 45 เวลา 16:51:58 น. --> 211.10.27.36, w
  
   
แก้ไขนิดหน่อยนะครับ ลืม INT ครับผม
Function RoundDw
Para xNum,xDec
Return Int(xNum*(10**xDec))/(10**xDec)


สุ่ยน้อย
13 ก.พ. 45 เวลา 16:54:09 น. --> 211.10.27.36, w
  
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :