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

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


บทนำ

เมธอด Decimal.ToDouble() ใน C# ใช้แปลงค่าของ Decimal ที่ระบุให้เป็นจำนวนจุดลอยตัวความแม่นยำสองเท่า (double) เทียบเท่า อาจสูญเสียความแม่นยำได้ เนื่องจาก double มีความแม่นยำน้อยกว่า Decimal

ไวยากรณ์ (Syntax)

public static double ToDouble (decimal val);

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

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

using System;

public class Demo 
{
    public static void Main()
    {
        Decimal val1 = -0.22m;
        Decimal val2 = -0.01m;
        
        Console.WriteLine("Decimal 1 = " + val1);
        Console.WriteLine("Decimal 2 = " + val2);
        
        Double res1 = Decimal.ToDouble(val1);
        Double res2 = Decimal.ToDouble(val2);
        
        Console.WriteLine("Double value1 (Decimal to Double) = " + res1);
        Console.WriteLine("Double value2 (Decimal to Double) = " + res2);
    }
}

ผลลัพธ์

Decimal 1 = -0.22
Decimal 2 = -0.01
Double value1 (Decimal to Double) = -0.22
Double value2 (Decimal to Double) = -0.01

ตัวอย่างที่ 2: การแปลงค่าขนาดใหญ่

using System;

public class Demo 
{
    public static void Main()
    {
        Decimal val1 = 23828m;
        Decimal val2 = 976587687595766665m;
        
        Console.WriteLine("Decimal 1 = " + val1);
        Console.WriteLine("Decimal 2 = " + val2);
        
        Double res1 = Decimal.ToDouble(val1);
        Double res2 = Decimal.ToDouble(val2);
        
        Console.WriteLine("Double value1 (Decimal to Double) = " + res1);
        Console.WriteLine("Double value2 (Decimal to Double) = " + res2);
    }
}

ผลลัพธ์

Decimal 1 = 23828
Decimal 2 = 976587687595766665
Double value1 (Decimal to Double) = 23828
Double value2 (Decimal to Double) = 9.76587687595767E+17

สรุป

เมธอด Decimal.ToDouble() เหมาะสำหรับการทำงานร่วมกับ API ที่ต้องการ double แต่ควรระวังการสูญเสียความแม่นยำ เนื่องจาก double มีความแม่นยำประมาณ 15-17 หลักสำคัญ ในขณะที่ Decimal มี 28-29 หลัก