- ベストアンサー
VB.NETで小数点以下の桁数を取得したい
こんばんは。 VB.NETで1つ教えて下さい。 小数点以下の桁数を取得したいのですが どのようにすると良いのでしょうか? 例えば 1.5なら1 2.12なら2 2.555なら3と取得したいのです。 解るかたおられましたら ご教授、宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
小数点以下が2ケタか4ケタのどちらかっていうことなら、 Format(金額, "##0.0000") の右2文字が"00"なら削るってのでも良いのでは?
その他の回答 (3)
- mt2008
- ベストアンサー率52% (885/1701)
> データは1.1500,0.00050 データは元々文字列ってこと? だったら、一度数値に変換してからもう一度文字列に変換してSplitで良いのでは? 4ケタくらいなら右から1文字づつ0か否かをチェックしても良いかも。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
Dim num As Double = 1.6 Dim str As String() = num.ToString().Split("."c) Dim cnt As Integer If str.Length > 1 Then cnt = str(1).Length MessageBox.Show(cnt.ToString()) End If
補足
回答ありがとうございます。 すいません、データは必ず小数点以下4桁を持っていて データは1.1500,0.00050 となります。 説明不足でしたが、0以外の有効な小数点以下の桁数を取得出来ないでしょうか? 1.1500が2桁,0.0050は3桁と取得したいのです。 申し訳ありません、ご教授宜しくお願いします。
- mt2008
- ベストアンサー率52% (885/1701)
文字列に変換して「.」でSplitして2つ目の要素の文字数を取得……ってのが一番シンプルかな?
補足
回答ありがとうございます。 データはオフコンからの取得でデータ型が数字7桁小数点以下4桁となっています。 Format(金額, "##0.####")で 1.1500を1.15に、0.00050を0.0005に変換して ToString.Split("."c)するようにしました。 結果は取れましたが、 Format(金額, "#,##0.00")とするかFormat(mHTAN, "#,##0.000")とするか 小数点以下の桁数で編集を使い分けたかったのですが これで良かったのでしょうか?