- PR -

文字型を数値型へ変換する方法

投稿者投稿内容
初心者です
会議室デビュー日: 2006/07/04
投稿数: 14
投稿日時: 2006-07-04 19:15
テーブルで文字型(String)で定義されている項目を
VB.NETのプログラム内では数値型(Integer)として
計算などに使いたいのですけれど、どのように変換したら
良いのでしょうか?
教えてください。
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-04 19:39
Convert.ToInt32()メソッドを使ってください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-04 19:45
個人的には、System.Convert 系より、[値型].Parse メソッド系をお勧めします。
たとえば、Integer であれば、Integer.Parse メソッドなどをお試しください。

2.0 であれば、Integer.TryParse メソッドを使いましょう。
型と検証がひとつになっているので、非常にわかりやすいです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-04 19:50
そうだよね。System.Convert系はダメだね。遅いし。
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-04 19:57
Integer.Parseメソッドの存在を忘れてましたorz

System.Convert系が遅いのは知りませんでした。
#今まで意識しないで使ってました...
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-04 20:24
引用:

深山さんの書き込み (2006-07-04 19:57) より:

Integer.Parseメソッドの存在を忘れてましたorz
System.Convert系が遅いのは知りませんでした。


System.Convert クラスにあるメソッドは、そんなに遅くないハズです。(確か)
むしろ、VB 君お得意の CInt は、

 Microsoft.VisualBasic.CompilerServices.Conversions::ToInteger()

なのですが、こっちの方こそすごいです。
ベンチテストしてみると、System.Int32::Parse() に比べて明らかに遅いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-04 21:36
すまん。そこまで大差なかったね。
CIntとかと間違えていたかもしれぬ。
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-07-04 22:26
試しに3種類の変換方法でString型をInt32型に10万回変換してみました。

[環境]
OS : WinXP
メモリ : 1ギガ
CPU : Pen4 1.6GHz

== 結果 ==
Integer.Parse : 0.0322552167943132秒
Convert.ToInt32 : 0.0336567915754656秒
CInt : 0.359069937659675秒

CIntが10倍以上遅いよ。さすがVB伝統のCIntだ

じゃんぬねっとさんとぶさいくろうさんのお勧め通りInteger.Parseメソッドですね。
#Integer.TryParse メソッドは環境がないので試していません。

スキルアップ/キャリアアップ(JOB@IT)