Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Decimal.ToInt64 ใน C# พร้อมตัวอย่าง


บทนำ

เมธอด Decimal.ToInt64() ใน C# ใช้แปลงค่าของ Decimal ที่ระบุให้เป็นจำนวนเต็ม 64 บิตที่มีเครื่องหมาย (long) เทียบเท่า โดยจะตัดส่วนทศนิยมทิ้ง (truncate toward zero)

ไวยากรณ์ (Syntax)

public static long ToInt64 (decimal val);

โดยที่ val คือค่าทศนิยมที่ต้องการแปลง

ตัวอย่างที่ 1: การแปลงค่าบวกและลบ

using System;

public class Demo 
{
    public static void Main()
    {
        Decimal val1 = -567.7989m;
        Decimal val2 = 456.000m;
        
        Console.WriteLine("Decimal 1 = " + val1);
        Console.WriteLine("Decimal 2 = " + val2);
        
        long res1 = Decimal.ToInt64(val1);
        long res2 = Decimal.ToInt64(val2);
        
        Console.WriteLine("64-bit signed integer (val1) = " + res1);
        Console.WriteLine("64-bit signed integer (val2) = " + res2);
    }
}

ผลลัพธ์

Decimal 1 = -567.7989
Decimal 2 = 456.000
64-bit signed integer (val1) = -567
64-bit signed integer (val2) = 456

ตัวอย่างที่ 2: การแปลงค่าทศนิยมเล็กน้อย

using System;

public class Demo 
{
    public static void Main()
    {
        Decimal val1 = 1.00m;
        Decimal val2 = 34.678m;
        
        Console.WriteLine("Decimal 1 = " + val1);
        Console.WriteLine("Decimal 2 = " + val2);
        
        long res1 = Decimal.ToInt64(val1);
        long res2 = Decimal.ToInt64(val2);
        
        Console.WriteLine("64-bit signed integer (val1) = " + res1);
        Console.WriteLine("64-bit signed integer (val2) = " + res2);
    }
}

ผลลัพธ์

Decimal 1 = 1.00
Decimal 2 = 34.678
64-bit signed integer (val1) = 1
64-bit signed integer (val2) = 34

สรุป

เมธอด Decimal.ToInt64() ทำการ truncate (ตัดทิ้ง) ส่วนทศนิยม ไม่ได้ปัดเศษ หากค่า Decimal อยู่นอกขอบเขตของ Int64 (-9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807) จะเกิด OverflowException