C#でDouble型の値をInt64型に変換する方法【Convert.ToInt64の使い方】
C#において、Double型(倍精度浮動小数点数)の値をInt64型(64ビット符号付き整数)に変換するには、Convert.ToInt64() メソッドを使用します。
Int64は、C#では long 型としても知られており、約 -9.2 × 10^18 ~ 9.2 × 10^18 の範囲の整数値を扱うことができます。浮動小数点数から整数へ変換する際、Convert.ToInt64() は銀行家丸め(四捨五入ではなく、最も近い偶数への丸め)を行う点にも注目してください。
基本的な変換手順
まず、変換元となるdouble型の値を用意します。
double val = 23.951213e12;
この値をInt64に変換するには、Convert.ToInt64() メソッドに引数として渡すだけです。
long longVal = Convert.ToInt64(val);
サンプルコード
実際の動作を確認できる、完全なプログラム例を以下に示します。
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型の値がInt64の表現範囲を超える場合、OverflowException がスローされます。
- NaN(非数)やInfinity(無限大)を変換しようとした場合も例外が発生します。
- 単純に切り捨てたい場合は
(long)valのような明示的なキャストや、Math.Truncate()を利用する方法もあります。
このように、Convert.ToInt64() を使えば、Double型からInt64型への変換を安全かつ簡単に行うことができます。
-
Pythonで整数をローマ数字に変換する方法をわかりやすく解説
整数 num が与えられたとき、それを対応するローマ数字へ変換することを考えてみましょう。ローマ数字では、以下のような記号と値が使われます。 「I」= 1 「V」= 5 「X」= 10 「L」= 50 「C」= 100 「D」= 500 「M」= 1000 通常、これらの記号は値が大きい順に左から右へ並べられ、すべての記号の値を合計することで数値を表します。しかし、小さい値の記号が大きい値の記号の左側に置かれる特別なケースも存在します。この場合、小さい方の値は大きい方の値から差し引かれます。 そのような減算ルールが適用されるケースの例は以下の通りです。 「I」が「V」の前にある場合 →
-
Pythonで行列(リストのリスト)を辞書に変換する方法
Pythonでは、行列(リストの中にリストが入ったネストされた構造)を辞書形式に変換したい場面があります。たとえば、各行に行番号をキーとして割り当てて管理したい場合などです。こうした変換は、辞書内包表記(dictionary comprehension)を使えば、わずか1行のコードで簡潔に実現できます。 サンプルコード 以下は、行列を辞書に変換する具体的な例です。 my_list = [[71, 26, 35], [65, 56, 37], [89, 96, 99]] print(The list is :) print(my_list) my_result = {my_index + 1