記事No |
: 966 |
投稿日 |
: 2021/11/08(Mon) 07:54:17 |
投稿者 |
: JA9AOB 銅子 |
> JA9AOB 銅子さん、ありがとうございます。
>
>
> C# から VB.net への変換ミスを修復し切れていない問題も残っています。
> GlCalculate() にて
>
>
> If isEast = True Then
> longitude += CDbl(180)
> Else
> longitude = CDbl(180) - longitude
> End If
> ....の次が
>
> ''' Input:
> ''' longitude /= 20;
> ...の様に未変換のままです。 ここは必要なのかどうか?
>
> 上記のIf文と同じコードが出て来ますが、そこにも
>
> ''' Input:
> ''' longitude /= 20;
>
> -------------------------
> GlToTransit() にも同じ箇所があります。
複合代入演算子 と言われるものです。
longitude /= 20; は longitude = longitude/20; と同じです
他に
x += y
x = x + y
x -= y
x = x - y
x *= y
x = x * y
x /= y
x = x / y
等もあります
>
>
> GlCalculate() 関数の呼び出しでエラー。 パラメターの与え方が悪い?
> コールの仕方が悪いのか?
>
> 'エラー
> BC30451 'GlCalculate' は宣言されていません。アクセスできない保護レベルになっています。
>
> 下記の様にしているのですが??
> Public Class SurroundingClass
>
> Public Function GlCalculate(ByVal edeg As Integer, 以下省略
>
> Class から Module に変えたら上記のエラーは出なくなりました。
> デバッグで動かすと
>
> '// 1文字目 経度情報の整数部 0~17 をAからRに変換する
> gl += characters(CInt(longitude))
gl += ((int)longitude).ToString();
はdoubleをintに変換してstringに変換 すなわち整数部分の文字表現を取り出し gl の後ろに付け足す処理です。
10進数に直して 整数部分を取り出しその値を文字化する方法もあります。
BigDecimal bigDecimal = new BigDecimal(String.valueOf(doubleNumber));
int intValue = bigDecimal.intValue();
その他に doubleを文字化して 小数点以前を取り出す方法でも可能です
String doubleAsString = String.valueOf(doubleNumber);
int indexOfDecimal = doubleAsString.indexOf(".");
gl += doubleAsString.substring(0, indexOfDecimal);
>
> ...にて「ユーザーが処理していない例外」と言うエラー
>
>
> 長くなりますので、後は落ち着いたらメールっさせて頂きます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!