Convert float to int

การแปลงค่าจาก float เป็น int ถ้าเราใช้ function int.Parse() จะใช้ overhead สูงเพราะ parameter ที่รับเข้าไปจะต้องเป็น string ตัวอย่างเช่น int.Parse(floatValue.ToString()); มันคือการเอา float -> string -> int ซึงเราไม่ต้องการ เราต้องการ float -> int

มีอีกทางเลือกคือใช้ Convert.ToInt32() แต่การเรียกใช้ method นี้จะเป็นการ เรียกใช้ method ของ CLR ของ .net ซึ่งผู้ที่เขียน C# จะดูว่ามันไม่ค่อย native C# ซะเท่าไร่ เลยขอใช้วิธีการ boxing ธรรมดานี่แหละ โดยใช่ function ปัดทศนิยมเข้ามาช่วย ดูแล้วมันเข้าใจง่ายดี (คราวหน้าจะมาวัด Performance กัน)



  1. float floatValue = 15.2F  
  2.   
  3.   
  4. int intValue = (int)Math.Round(floatValue) // ปัดขึ้น  
  5.   
  6.    // หรือ  
  7.   
  8. int intValue = (int)Math.Floor(floatValue) // ปัดลง  

ความคิดเห็น

  1. แล้วถ้าต้องการตัดทศนิยมทิ้งหล่ะครับ คือสมมุติ 10.4444 แล้วผมต้องการแค่ 10 ทำยังไงครับ

    ตอบลบ
  2. Math.Round หรือ Math.Celling ครับเป้นการปัดเศษเลย

    ตอบลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

FancyBox not work in UpdatePanel

Get QueryString from JavaScript