C#でDecimalをInt64(long)に変換する方法
C#でDecimal型の値をInt64(long)型に変換するには、Convert.ToInt64()メソッドを使用します。このメソッドは、指定されたDecimal値を最も近い整数に丸めたうえで、64ビット符号付き整数へと変換します。
基本的な変換手順
まず、変換元となるdecimal型の変数を用意します。
decimal d = 310.23m;
この値をInt64に変換するには、Convert.ToInt64()メソッドを呼び出すだけです。
long res; res = Convert.ToInt64(d);
サンプルコード
実際に動作する完全なサンプルプログラムを見てみましょう。
using System;
class Demo {
static void Main() {
decimal d = 190.66m;
long res;
res = Convert.ToInt64(d);
Console.WriteLine("Converted Decimal '{0}' to Int64 value {1}", d, res);
}
}実行結果
Converted Decimal '190.66' to Int64 value 191
丸め処理のポイント
上記の例では、190.66が191に変換されています。Convert.ToInt64()メソッドは小数部分を丸めて処理するためです。具体的には「銀行家の丸め(最も近い偶数への丸め)」が採用されており、たとえば190.5は190に、191.5は192に丸められます。端数がちょうど0.5の場合の挙動に注意が必要です。
また、変換元の値がInt64の範囲(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)を超えている場合には、OverflowExceptionがスローされる点にも留意してください。大きな値を扱う可能性がある場合は、事前に範囲チェックを行うか、try-catchによる例外処理を組み込んでおくと安全です。
-
Javaで10進数を8進数に変換するプログラムの作成方法
この記事では、10進数(Decimal)を8進数(Octal)に変換するJavaプログラムの作成方法を解説します。10進数とは、整数部分と小数部分が小数点によって区切られている数値のことで、私たちが日常的に使っている記数法です。一方、8進数は基数が8であり、0から7までの8種類の数字を使用します。10進数から8進数への変換の仕組み10進数を8進数に変換するには、「8で割った余り」を順番に求め、商が0になるまで割り続ける方法が一般的です。求めた余りを逆順に並べると、それが8進数表現になります。例えば、10進数の「8」の場合、8で割ると商が1・余りが0、さらに1を8で割ると商が0・余りが1となるた
-
Pythonで16進数の文字列を10進数に変換する方法を解説
この記事では、16進数の文字列を10進数に変換する問題の解決策について詳しく解説します。課題の概要16進数形式の文字列が与えられたとき、それを対応する10進数の値に変換することを目標とします。例えば、16進数の「F」は10進数では「15」に相当します。この問題には主に2つのアプローチがあります。力ずく(ブルートフォース)な手法:int関数を使った明示的な型変換組み込みモジュールを活用する手法:astモジュールのliteral_eval関数を使用方法1:int関数を使った変換最もシンプルで一般的な方法は、Pythonの組み込み関数であるint()を利用するものです。この関数は2つの引数を受け取り