C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■43795  Re[4]: ListView1_MouseWheelでのVistaとXP
□投稿者/ オショウ -(2009/11/19(Thu) 09:27:47)
    No43794 (とし さん) に返信
    > 残る原因は、ハード的な問題? マウスはちゃんと動くし、特に問題はなさそうですが・・・

      ご使用のマウスは?
      私はたまたまマイクロソフト純正のオプティカルマウス
      なんで、ドライバーもWindows標準です。

     以上。参考まで
記事No.43710 のレス /過去ログ75より / 関連記事表示
削除チェック/

■64881  Re[2]: PDFのカレントページを取得
□投稿者/ ネモト -(2013/01/19(Sat) 19:14:20)
    No64861 (魔界の仮面弁士 さん) に返信
    > ■No64858 (ネモト さん) に返信
    >> AxAcrpPDFを使用しているのですが、不明です。
    > AxAcroPDF、ですよね。
    >
    >
    >> だれか、教授お願いします。
    > 教示、ですよね。
    失礼しました、教示でした。

    >
    >
    >>PDFのページ番号を取得したいのですが解かりません。
    > AxAcroPDF には該当機能が用意されていません。かわりに AVPageView を使ってください。
    > AVPageView からは、他のオブジェクト(AcroRect, PDDoc, PDPage 等)を取得できます。
    >
    > そして AVPageView を使うには、Adobe Acrobat が必要となります。

    Adobe Acrobatは、Adobe社から購入しインストールすれば良いのでしょうか?
    実態は、別のDLLになり参照設定も必要なのですね?

記事No.64858 のレス /過去ログ109より / 関連記事表示
削除チェック/

■69070  Re[2]: MDB/OpenSchemaで取得できる属性情報について
□投稿者/ むぅ -(2013/12/01(Sun) 22:33:01)
    daive 様
    お世話になります。
    詳しく教えてくださり、感謝しております。

    教えていただいた情報をもとに勉強してみます。
    ありがとうございましたm(__)m。
記事No.69037 のレス / END /過去ログ117より / 関連記事表示
削除チェック/

■85904  Re[2]: 指数表記された文字列の数値変換方法について
□投稿者/ たかじ -(2017/11/30(Thu) 16:33:49)
    WebSurferさん、魔界の仮面弁士さん

    ご連絡が遅くなりすみません。
    ご回答ありがとうございます。

    遅くなりましたが、開発言語はC#です。

    ご丁寧にサンプルも記載して頂き、わかりやすかったです。
    指数表記の数値変換方法については、
    ご掲示頂いた内容で解決することができました。
    ありがとうございます。

    ※魔界の仮面弁士さんにご掲示頂くまで、
    decimal有効桁数の存在をすっかり忘れていました。。。

    3.4E+38の変換については、型の問題もありますので、解決方法検討してみます。
記事No.85832 のレス / END /過去ログ147より / 関連記事表示
削除チェック/

■85915  Re[3]: 指数表記された文字列の数値変換方法について
□投稿者/ 魔界の仮面弁士 -(2017/12/01(Fri) 11:13:23)
    # 解決済みマークはつけたままにしておきます。

    No85904 (たかじ さん) に返信
    >>> 指数表記されている文字列(2.12345678975E9や3.4E+38など)を
    >>> decimalにTryParseすると、変換に失敗します。
    >> 後者はどうやっても不可能です。最大値(decimal.MaxValue)を大幅に超えていますから…。
    > 3.4E+38の変換については、型の問題もありますので、解決方法検討してみます。


    値が大きいので、基本的には System.Single や System.Double の
    出番な気がしますが、最終的には要件が求める許容誤差次第ですね。


    あとは System.Numerics.BigInteger を使う手もありますが、
    あくまで整数なので、"3.4E+38" はパースできても、
    "2.12345678975E9" の方には使えません。


    using System;
    using System.Globalization;
    using System.Numerics; // 参照設定: System.Numerics.dll
    class Program
    {
     static void Main()
     {
      var ns = NumberStyles.Float;
      var fmt = CultureInfo.InvariantCulture;

      string s1 = "2.12345678975E9";
      decimal dm; double d1; float f1;
      decimal.TryParse(s1, ns, fmt, out dm); // true
      double.TryParse(s1, ns, fmt, out d1);  // true
      float.TryParse(s1, ns, fmt, out f1);  // true
      Console.WriteLine("{0:N4}", dm); // 2,123,456,789.7500
      Console.WriteLine("{0:N4}", d1); // 2,123,456,789.7500
      Console.WriteLine("{0:N4}", f1); // 2,123,457,000.0000

      string s2 = "3.4E+38";
      BigInteger b1, b2, b3; double d2; float f2;
      BigInteger.TryParse(s2, ns, fmt, out b1); // true
      double.TryParse(s2, ns, fmt, out d2);   // true
      float.TryParse(s2, ns, fmt, out f2);    // true
      b2 = (BigInteger)d2;
      b3 = (BigInteger)f2;
      Console.WriteLine("{0:N4}", b1); // 340,000,000,000,000,000,000,000,000,000,000,000,000.0000
      Console.WriteLine("{0:N4}", d2); // 340,000,000,000,000,000,000,000,000,000,000,000,000.0000
      Console.WriteLine("{0:N4}", b2); // 339,999,999,999,999,996,123,846,586,046,231,871,488.0000
      Console.WriteLine("{0:N4}", b3); // 339,999,995,214,436,424,907,732,413,799,364,296,704.0000

      Console.ReadKey();
     }
    }


    あとは、nuget などからの導入になりますが、BigDecimal とかですかね。


    Deveel.Math.BigDecimal v1, v2, v3;
    Deveel.Math.BigDecimal.TryParse("2.12345678975E9", out v1);
    Deveel.Math.BigDecimal.TryParse("3.4E+38", out v2);
    Deveel.Math.BigDecimal.TryParse("340000000000000000000000000000000000000", out v3);

    上記はいずれも true を返しますが、値の大小比較をする際には注意が必要です。
    v2 と v3 は、数値的には同じ値ですが、有効桁数が異なりますので。

    Console.WriteLine(v2.CompareTo(v3)); // 0 (一致)
    Console.WriteLine(v2 == v3);  // False (不一致)
    Console.WriteLine("{0}", v1); // 2123456789.75
    Console.WriteLine("{0}", v2); // 3.4E+38
    Console.WriteLine("{0}", v3); // 340000000000000000000000000000000000000

    ※ v2 は 指数 -37、有効桁数 2 桁 ( 34 × 10 ^ -37)
    ※ v3 は 指数 0、有効桁数 39 桁 (340000000000000000000000000000000000000 × 10 ^ 0)
記事No.85832 のレス / END /過去ログ147より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -