• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# 巨大な文字列の計算をさせたい)

C#で巨大な文字列の計算をさせる方法

arihinaの回答

  • arihina
  • ベストアンサー率26% (4/15)
回答No.5

この回答はまともな解答になっているかどうか。。。 まず、Computeが何のオブジェクトを返しているか、デバッグして確かめて見る必要があるかと思います。もし、Int32だったら、もうそれまでですし。 あるいは、sの計算式にSQLのdecimalへのキャスト関数のようなものをつけるという方法もあるでしょう。そうすれば、decimalで返ると思います。 最悪、多倍長精度計算のライブラリをどこかから探してくるという方法も考えられます。その場合、自分で式を計算するプログラムを組む必要があるでしょう。でも、decimalでいいんですよね?

tatapatank
質問者

補足

回答、ありがとうございます。 計算結果は、decimalであれば十分だと思っています。 普通にdoubleで拾えるのだから、decimalででも拾えるかと思っていたのですが、 なかなかうまくいかないみたいです。 数値が指数にさえならなければ、No.1さんの答えでも 上手くいったのですが、そこがクリアできればと 思うのですが…。

関連するQ&A

  • C#で型変換

    DataTable T_DATATABLE = new DataTable(); DataRow[] T_DATATABLE_row; DataAdapter adp = new DataAdapter("SELECT id,Date FROM TABLE", CONN); adp.Fill(T_DATATABLE); //データテーブルにidとDateフィールドがあります。 //dtに下記で取得したダータを入れようと思っているのですが、 //System.Datetimeに変換することはできませんと表示されます。 DateTime dt = T_DATATABLE.Rows[0]["Date"]; どのようにすれば、型変換をすることができるでしょうか? string dt = (string)T_DATATABLE.Rows[0]["Date"]; string dt = (string)T_DATATABLE.Rows[0]["Date"].toString; としてもできません・・・ ご教授お願い致します!

  • C#で、文字列の内容の計算をさせる方法

    お世話になります。 C#で、文字列の中に書かれている式を計算して値を出してくれる 関数、もしくは、それに近い方法を探しています。 たとえば、 string st = "3+2*5-6"; という文字列を渡すと、『7』を返してくれるような関数です。 あるのであればその関数を、ないのであれば、似たようなことが できる方法を教えてください。 宜しくお願いします。

  • C言語で取得した文字列を、C++の文字列として取り扱いたいです。

    C言語で取得した文字列を、C++の文字列として取り扱いたいです。 皆さんこんにちは。 C言語で取得したchar型で定義された文字列を、 C++の「std::string」に渡したいと思っております。 どうすればかなうでしょうか? 具体的には次のような内容です。 ■C言語側 ---- char key1 = "deperture"; ---- ■C++側で「key1 = key2」としたいです。 ---- std::string key2 = key1; ---- C言語側で記述されている「key1」の値(deperture)を、 C++ソース内の「key2」に渡したいと思っています。 こうゆう場合、どんな方法をとれば適切でしょうか。 C言語側でのchar型の文字列の値を、 C++側の「std::string」型として C++のソースへ渡す方法が分からないです。 アドバイスいただけるとありがたいです。 簡単な例を頂けると更に大変ありがたいです。 以上どうぞ宜しくお願い致します。

  • [JAVA]evalで文字列を計算式に!

    こんにちわぁ♪ Javascriptに「eval」というコマンドがあると思います。 これは、文字列を計算式として変換するものです。 例えば String SHIKI = "A + B" という文字列があり、evalを使ってやると その時点で文字列ではなくなり、 普通に、 A=3; B=4; String C = eval(SHIKI); と計算式にすることができます(使い方がちがうかもしれませんが)。 しかし、JAVAスクリプトではあるこのコマンドが JAVAでは見つかりません。 これと同等のコマンド、JAVAにありますか?

    • ベストアンサー
    • Java
  • 文字列について

    適当な文字列をキーボードから入力し、次に別の適当な整数numをキーボードから入力する。次に先に入力した文字列のnum番目からnum個の文字だけ逆順になるように文字列を並び替えた文字列を新たな文字列変数に代入し、その結果を画面に出力するプログラムを下記で作成したのですが、文字列時代が逆になってしまいます。どうしたら、 結果    文字列を入力      My name is Taro Sandai.    整数を入力     10    My name isdnaS oraT になるのですか? import java.io.*; class mojiretu4 { public static void main(String args[]) throws IOException { System.out.println("文字列を入力"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("整数を入力"); String str2 = br.readLine(); int num = Integer.parseInt(str2); StringBuffer sb = new StringBuffer(str1); sb.reverse(); System.out.println(sb);

    • ベストアンサー
    • Java
  • 文字列の取得

    string.subString()のなどで文字列を指定文字数分取得する場合に、バイト数指定で取得する方法ってありますか? 教えてください。

    • ベストアンサー
    • Java
  • 文字列の算出について

    お世話になります。 文字列の10桁の基礎年金コードと 5桁の年金番号があったとします。 それと結合して123456789012345のように 15桁の文字列になるよう指示をだし その15桁から文字列の管理コード4桁を引き算したいのですが なにかアイデアはありますでしょうか?? 結合なしの引き算でしたら long型で宣言して 対応出来るのですが・・・ どうぞよろしくお願いいたします。 String 基礎コード = "1234567890"; String 年金番号= "12345"; String 管理コード= "5678"; System.out.println(String.format( )); System.out.println(管理番号 - 基礎年金番号);

    • ベストアンサー
    • Java
  • 文字列の分解・格納

    お世話になります。 文字列の分解についてお聞きします。 環境はVB.NET2008です。 Private Sub Main(ByVal CmdArgs() As String) Dim cmds() As String cmds = System.Environment.GetCommandLineArgs() End Sub コマンドライン引数で以下のように文字列を取得しています。 ("起動exe", "/KEY=○○○/ テーブル名=△△△") この文字列を元に、 変数Aに○○○を変数Bに△△△を代入したいのですが、どうやるのでしょうか? ご教示願います。

  • VB.NETで、配列をテーブルに変換する。

    VB.NETで、一次元配列string()にあるデータを、DataTableに変換 したいのですが、「型'String'の値を'System,Data,DataTable'に変換できません。」 と、エラーが発生してしまいます。 s1に、配列データが入っています。 Dim dt As DataTable Dim cnt As Integer Dim i As Integer dt = New DataTable count = s1.Length For i = 0 To cnt - 1 dt = CType(s1(i), DataTable) Next 解決方法が見つからず、行き詰っております。 宜しくお願い致します。

  • 数値を文字列に変換する?

    下のプログラムでなぜString ss= " "+dt;のように数値を文字列に変換しないとだめなんでしょうか? ちなみに桁数設定メソッドを作るプログラムです。 public class JcWidth { // JcWidth.java [java] public static void main(String args[]) { System.out.println(":" + toIntWidth(123, 8) + ":"); System.out.println(":" + toIntWidth(12345, 8) + ":"); System.out.println(":" + toIntWidth(-1234567890, 8) + ":"); System.out.println(":" + toHexWidth(4095, 8) + ":"); System.out.println(":" + toHexWidth(123456789, 8) + ":"); } // int値dtを先行空白付きw桁(最大12)の表現にする // 数値が指定幅より大きいときは必要な幅にする public static String toIntWidth(int dt, int w) { if (w > 12) w = 12; String ss = "" + dt; // 数値を文字列にする if (ss.length() > w) w = ss.length(); ss = " " + dt; return ss.substring(ss.length()-w); } // int値dtを先行0付きw桁(最大8)の16進数大文字表現にする public static String toHexWidth(int dt, int w) { if (w > 8) w = 8; String ss = Integer.toHexString(dt).toUpperCase(); if (ss.length() > w) w = ss.length(); ss = "0000000" + ss; return ss.substring(ss.length()-w); } } 

    • ベストアンサー
    • Java