小数点以下の切捨てをする関数に、”Int”があります。
また、”DefInt”という関数を使って例えば
DefInt A-D とすると、A,B,C,Dから始まる文字がすべて整数化(小数点以下四捨五入)します。
ここで質問なんですが、DefIntみたいに宣言できて、小数点以下の切捨てをする関数はありますか?よろしくお願いします。
> 小数点以下の切捨てをする関数に、”Int”があります。
Fixというのもありますね。
> また、”DefInt”という関数を使って例えば
それは関数ではなく、ステートメントです。
しかもこれも、旧バージョンとの互換性のために残されているだけであり、
現在は推奨されていないものです。
> 小数点以下四捨五入
違います。四捨五入ではなく、偶数方向への丸めです。
つまり、0.5→0、1.5→2、2.5→2、3.5→4、という感じになります。
> DefIntみたいに宣言できて、
Def〜系ステートメントは使用しないようにしましょう。
ご返答ありがとうございます。
知ったかみたいに、書いてすいません。
今、FortranからVBに変換していて、Fortranでは、I〜N(だったと思います)から始まる文字が整変数なので、これを変換したいのですが、一個一個宣言しなければならないでしょうか?
> 今、FortranからVBに変換していて、Fortranでは、I〜N(だったと思います)
>から始まる文字が整変数なので、これを変換したいのですが、一個一個宣言しなければならないでしょうか?
それこそDefLng(DefInt)でよいのでは?
ただし、小数を整数化するときの話とはまったく別問題です。
>> Fortranでは、I〜N
よほど手抜きなコードでも無い限り、暗黙宣言の変数は、
Fortranであっても使うべきでは無いと思います。きちんと
INTEGER I, J, K
などと宣言しておくべきべきかと。
ところで……VB側で、「Option Explicit」宣言も省略していませんか?
元々が Fortran と言うことは、計算処理がメインとなるかと思いますが、
きちんと変数宣言しておいた方が処理も高速になりますし、バグも減らせます。
>> 一個一個宣言しなければならないでしょうか?
データ型は宣言せずとも使えますが、きちんと宣言した方が良いでしょう。
まぁ、今はVBへのコードの移植作業中という事ですから、保険の意味で、
データ型の宣言忘れ(変数の宣言忘れ、ではない)に対する対処として、
Option Explicit
DefDbl A-H, O-Z
DefInt I-N
などと書いておいても良いでしょうけれど。。。
> ただし、小数を整数化するときの話とはまったく別問題です。
そうですね。
面倒がらずに、きちんと Int/Fix関数を使った方が良いと思いますよ。
ご返答ありがとうございます。
返事がすごく送れて申し訳ありません。
「Option Explicit」は、言われた通り省略していました。とりあえずVBに置き変わったので、これから計算速度が早くなるように試行錯誤していきたいと思います。
今後もよろしくお願いします。
ツイート | ![]() |