C# で Double を Decimal に変換する

Saad Aslam 2023年10月12日
  1. C# における double と Decimal の概要
  2. C#Convert.ToDecimal(Double) メソッドを使用して Double を Decimal に変換する
C# で Double を Decimal に変換する

この投稿では、プログラミング言語 C# を使用して double を decimal に変換する方法について説明します。

この課題に取り組むには、さまざまなアプローチがあります。 ただし、最も役に立ち、正しい説明に焦点を当てます。

C# における double と Decimal の概要

double の数学計算は base 2 を使用しますが、decimal の計算は base 10 を使用します。 基数 2 での計算は、他の基数よりもコンピュータにとって実質的に高速です。

さらに、double はそのパフォーマンスに重点を置いていますが、decimal は精度に重点を置いています。 double を使用すると、計算結果はあまり正確ではなくなりますが、満足のいく応答がはるかに迅速に得られます。

C#Convert.ToDecimal(Double) メソッドを使用して Double を Decimal に変換する

System.Convert 名前空間にある Convert.ToDecimal(Double) メソッドを使用します。このメソッドは double から decimal への変換を担当します。 このメソッドは、double 型の値を引数として受け取り、decimal 型の値を返します。

この関数は 10 進数のみを返すことができ、これらの値の有効桁数は 15 桁までです。 値パラメーターに含まれる有効数字が 15 桁を超える場合は、使用する前に最も近い小数に丸められます。

次の行ごとの例は、システムが Convert.ToDecimal(Double) メソッドを使用して数値を最も近い整数に丸める方法を示しています。

System ライブラリをインポートし、Main() 関数を含むクラスを作成します。

using System;

public class DoubleToDecimalbySaad {
  public static void Main() {}
}

xy という名前の 2つの変数を double のデータ型で作成し、Main() 関数内でそれぞれにいくつかの double 値を追加します。

double x = 1234567890123475.12D;
double y = 1234567890123458.12D;

次に、Convert.ToDecimal() 関数を使用して、xy の値を渡します。 指定された単精度浮動小数点数の値を対応する 10 進数値に変換します。

Console.WriteLine("The decimal value of the first number is: " + Convert.ToDecimal(x));
Console.WriteLine("The decimal value of the second number is: " + Convert.ToDecimal(y));

完全なソース コード:

using System;

public class DoubleToDecimalbySaad {
  public static void Main() {
    double x = 1234567890123475.12D;
    double y = 1234567890123458.12D;
    Console.WriteLine("The decimal value of the first number is: " + Convert.ToDecimal(x));
    Console.WriteLine("The decimal value of the second number is: " + Convert.ToDecimal(y));
  }
}

出力:

The decimal value of the first number is: 1234567890123480
The decimal value of the second number is: 1234567890123460
著者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

関連記事 - Csharp Math