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

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

C# と VB.NET の入門サイト

Re[1]: 文字を数値に変換する方法


(過去ログ 97 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■58012 / inTopicNo.1)  文字を数値に変換する方法
  
□投稿者/ ひっそり (11回)-(2011/03/23(Wed) 22:15:01)

分類:[C#] 

文字を数値に変換するにはどうすればよいのでしょうか?
以下のようなコードがあった場合「5」をInt型で取得したいです。

char c = '5';

if (Char.IsDigit(c))
{
    Console.WriteLine("数値には変換できる");
}

引用返信 編集キー/
■58014 / inTopicNo.2)  Re[1]: 文字を数値に変換する方法
□投稿者/ επιστημη (2610回)-(2011/03/23(Wed) 22:25:52)
επιστημη さんの Web サイト
こんなんでいかがでしょ。

class Program {
  public static void Main() {
    char c = '5';
    int n = int.Parse(c.ToString());
    System.Console.WriteLine(n);
  }
}

引用返信 編集キー/
■58015 / inTopicNo.3)  Re[1]: 文字を数値に変換する方法
□投稿者/ shu (539回)-(2011/03/23(Wed) 22:29:34)
No58012 (ひっそり さん) に返信

これも出来ます。

int intA = (int)a-(int)'0';
Console.WriteLine(intA);

引用返信 編集キー/
■58018 / inTopicNo.4)  Re[2]: 文字を数値に変換する方法
□投稿者/ ひっそり (12回)-(2011/03/23(Wed) 22:49:24)
返信ありがとうございます。

解決しました。
解決済み
引用返信 編集キー/
■58033 / inTopicNo.5)  Re[3]: 文字を数値に変換する方法
□投稿者/ マサヤ (299回)-(2011/03/24(Thu) 10:09:13)
解決済みのところスミマセン。
char c = '5';
とありますが、これは絶対に数値に変換できるものが入ってくるのでしょうか?
TryParseとかありますので参考までに。
解決済み
引用返信 編集キー/
■58034 / inTopicNo.6)  Re[4]: 文字を数値に変換する方法
□投稿者/ shu (542回)-(2011/03/24(Thu) 10:13:22)
No58033 (マサヤ さん) に返信
> 解決済みのところスミマセン。
> char c = '5';
> とありますが、これは絶対に数値に変換できるものが入ってくるのでしょうか?
> TryParseとかありますので参考までに。
IsDigitで判定しているから大丈夫だと思います。

解決済み
引用返信 編集キー/
■58037 / inTopicNo.7)  Re[5]: 文字を数値に変換する方法
□投稿者/ Hongliang (761回)-(2011/03/24(Thu) 10:25:48)
> IsDigitで判定しているから大丈夫だと思います。
全然そんなことありません。
Char.IsDigit が True を返す範囲は想像以上に広大です。
全角数字に始まって、ギリシャ数字を初めとする各国の数字が含まれています。
引用返信 編集キー/
■58040 / inTopicNo.8)  Re[6]: 文字を数値に変換する方法
□投稿者/ shu (543回)-(2011/03/24(Thu) 10:40:28)
No58037 (Hongliang さん) に返信
>>IsDigitで判定しているから大丈夫だと思います。
> 全然そんなことありません。
> Char.IsDigit が True を返す範囲は想像以上に広大です。
> 全角数字に始まって、ギリシャ数字を初めとする各国の数字が含まれています。
そうでしたか。失礼しました。そうするとswitchとかで判定した方が確実ですね。
1文字だしParseするほどではないかなとは思います。
引用返信 編集キー/
■58044 / inTopicNo.9)  Re[7]: 文字を数値に変換する方法
□投稿者/ shu (544回)-(2011/03/24(Thu) 11:36:21)
No58040 (shu さん) に返信

switchではないですがParse使用しない方法です。

            foreach (char a in "0123456789013456789AA五".ToCharArray())
            {
                int intA = (int)a - (int)'0';
                if (intA > 9)
                {
                    //-- 全角も認める場合
                    intA = (int)a - (int)'0';
                }
                if ((intA < 0) || (intA > 9))
                {
                    Console.WriteLine(a + " is Not Digit");
                }
                else
                {
                    Console.WriteLine(intA);
                }
            }

引用返信 編集キー/
■58045 / inTopicNo.10)  Re[6]: 文字を数値に変換する方法
□投稿者/ みきぬ (957回)-(2011/03/24(Thu) 11:57:40)
No58037 (Hongliang さん) に返信
>>IsDigitで判定しているから大丈夫だと思います。
> 全然そんなことありません。
> Char.IsDigit が True を返す範囲は想像以上に広大です。
> 全角数字に始まって、ギリシャ数字を初めとする各国の数字が含まれています。

もしかして、IsNumber() メソッドと混同されてますか?
http://www.atmarkit.co.jp/fdotnet/dotnettips/264checkdigit/checkdigit.html
引用返信 編集キー/
■58046 / inTopicNo.11)  Re[7]: 文字を数値に変換する方法
□投稿者/ Hongliang (762回)-(2011/03/24(Thu) 12:18:26)
> もしかして、IsNumber() メソッドと混同されてますか?
> http://www.atmarkit.co.jp/fdotnet/dotnettips/264checkdigit/checkdigit.html
ありゃ、確かに一部混同してました。非10進系は範囲外でしたね。

まあやっぱり広範であるのは変わらないですが。
// フォントすらない文字がぞろぞろと…。
引用返信 編集キー/
■58097 / inTopicNo.12)  Re[1]: 文字を数値に変換する方法
□投稿者/ くり太郎 (11回)-(2011/03/25(Fri) 14:34:38)
くり太郎 さんの Web サイト
No58012 (ひっそり さん) に返信
> 文字を数値に変換するにはどうすればよいのでしょうか?
> 以下のようなコードがあった場合「5」をInt型で取得したいです。
>
> char c = '5';
>
> if (Char.IsDigit(c))
> {
> Console.WriteLine("数値には変換できる");
> }

自分は、次のようにしています。

int i = 0;
if (int.TryParse(c.ToString(), out i)) {
  Console.WriteLine("数値には変換できる");
}

変換した結果は、変数 i に格納されます。

#解決マークが途中で消えていたので、解決マークを付けておきました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -