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

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

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

Re[5]: 最初に0がつく文字列を数値に変換したい。


(過去ログ 94 を表示中)

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

■55980 / inTopicNo.1)  最初に0がつく文字列を数値に変換したい。
  
□投稿者/ RGB (1回)-(2010/12/21(Tue) 16:47:25)

分類:[VB.NET/VB2005 以降] 

"0012"という文字列を12という数字に変換するにはどうすればいいのでしょうか?
VB6では、Val("0012")とすれば、12に変換できたのですが、
VB.net以降では、0.0になってしまいます。
どうすればよいでしょうか?
引用返信 編集キー/
■55981 / inTopicNo.2)  Re[1]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ shu (310回)-(2010/12/21(Tue) 17:02:36)
No55980 (RGB さん) に返信
> "0012"という文字列を12という数字に変換するにはどうすればいいのでしょうか?
> VB6では、Val("0012")とすれば、12に変換できたのですが、
> VB.net以降では、0.0になってしまいます。
> どうすればよいでしょうか?

Integer.Parse("0012")

引用返信 編集キー/
■55982 / inTopicNo.3)  Re[1]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ Mira (14回)-(2010/12/21(Tue) 17:03:23)
2010/12/21(Tue) 17:06:20 編集(投稿者)

何かの変数に格納した"0012"をValしよとしていますか?
その変数をToStringしてからValするとどうなりますか?
引用返信 編集キー/
■55983 / inTopicNo.4)  Re[2]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ RGB (2回)-(2010/12/21(Tue) 17:20:25)
shuさん、Miraさん

ご返答ありがとうございます。

shuさんがご指摘されたように、Integer.Parse("0012")だと、12になるんですけど、
Miraさんが言われるように、何かの変数に格納した"0012"をValしようとすると、
やはり、0.0になります。ToStringしてからValしても同じでした。

まさか、左端が0の場合は〜みたいな条件文を書いて、
数値を出すしかないてことは、ないですよね???
引用返信 編集キー/
■55984 / inTopicNo.5)  Re[3]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ shu (311回)-(2010/12/21(Tue) 17:38:40)
No55983 (RGB さん) に返信
> shuさん、Miraさん
> 
> ご返答ありがとうございます。
> 
> shuさんがご指摘されたように、Integer.Parse("0012")だと、12になるんですけど、
> Miraさんが言われるように、何かの変数に格納した"0012"をValしようとすると、
> やはり、0.0になります。ToStringしてからValしても同じでした。
> 
> まさか、左端が0の場合は〜みたいな条件文を書いて、
> 数値を出すしかないてことは、ないですよね???
一応こちらのVS2008SP1の環境でValを試したところ大丈夫でした。
ValよりParseの方がFramework的には良いと思いますので可能なら置き換えることを奨めます。
ValはDoubleを返すので Double.Parseとした方が近いかもしれません。
置き換えるのが大変ということであればとりあえずの方法として、

    Public Function Val(ByVal Src As String) As Double
        Return Double.Parse(Src)
    End Function

をどこかのモジュールに定義し『Microsoft.VisualBasic.Conversion 』のValを
隠してしまうというやり方もあります。あまりいい方法ではありませんが・・・


引用返信 編集キー/
■55991 / inTopicNo.6)  Re[4]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ RGB (3回)-(2010/12/21(Tue) 21:03:04)
shuさん

Double.Parseで書いたらできました。ありがとうございました。
ちなみに私は、VB2010です。

解決済み
引用返信 編集キー/
■56000 / inTopicNo.7)  Re[5]: 最初に0がつく文字列を数値に変換したい。
□投稿者/ RGB (4回)-(2010/12/22(Wed) 09:12:34)
解決したんですけど、なぜ、できなかったか、直接の原因がわかりました。
"0012"という文字列の前後にSTX、ETXが付いたまま、そのままValをやったり、
Integer.Parse()をやったりしていました。
うっかりしていました、お騒がせしました(汗
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -