ภาพรวม
ใช้ Convert.ToInt64() แปลง double เป็น long (Int64) โดยจะปัดเศษทศนิยมแบบ Banker's Rounding เหมือน Convert.ToInt32
รูปแบบการใช้งาน
double val = 23.951213e12; // 2.3951213 × 10¹³ long longVal = Convert.ToInt64(val); // 23951213000000
ตัวอย่างโค้ดเต็ม
using System;
public class Demo
{
public static void Main()
{
double val = 23.951213e12;
long longVal = Convert.ToInt64(val);
Console.WriteLine("Converted double {0:E} to Int64 {1:N0} value", val, longVal);
}
}
ผลลัพธ์
Converted double 2.395121E+013 to Int64 23,951,213,000,000 value
ข้อสังเกต
- หากค่า double เกินขอบเขต
long(±9.22×10¹⁸) จะโยนOverflowException - การปัดเศษ: ใช้ Banker's Rounding (ปัดเป็นเลขคู่เมื่ออยู่กึ่งกลาง .5)
- สำหรับการตัดทศนิยม (truncate) ใช้
(long)valหรือMath.Truncate(val)