指数形式にしない方法No.05213
コイ さん 06/08/20 03:08
 
マクロにおいて数字が7ケタ以上ですと、指数形式?というですか。
「1.23457E+006」という表示になりますね。9ケタでそういう表示
にしない方法なんてあるものですか。単純に「123456789」と
表示したいのですが。

[ ]
RE:05213 指数形式にしない方法No.05214
コイ さん 06/08/20 03:36
 
HideMath.dllのFormatコマンドを使って整数部の有効ケタ数を上げるなんてことはで
きないですか。適当にいくつか試してはみましたがだめでした。

[ ]
RE:05213 指数形式にしない方法No.05215
アルビレオ さん 06/08/20 05:17
 
ユーザーのアルビレオです。

>マクロにおいて数字が7ケタ以上ですと、指数形式?というですか。
>「1.23457E+006」という表示になりますね。9ケタでそういう表示
>にしない方法なんてあるものですか。単純に「123456789」と
>表示したいのですが。

一番安易な方法は、浮動小数点バージョンではなく通常バージョンの秀丸エディ
タを使うことだと思います。

あるいは表示するのが整数限定でよければ、

#x = 1234567890;
call WidestrSub #x;
insert $$return;
endmacro;

WidestrSub:
if(##1<100000){
  return str(##1);
}else{
  return str(##1/100000)+str(##1%100000);
}

という方法ではどうでしょうか。

[ ]
RE:05213 指数形式にしない方法No.05216
h-tom さん 06/08/20 06:06
 

h-tom です。

>マクロにおいて数字が7ケタ以上ですと、指数形式?というですか。
>「1.23457E+006」という表示になりますね。9ケタでそういう表示
>にしない方法なんてあるものですか。単純に「123456789」と
>表示したいのですが。
秀丸エディタの浮動小数点バージョンの話ですよね?
通常版だと指数表示にはならないはずですし。
7桁以上で形式が変わるのは、変換に"%lG"を使ってるせいかな?
(Gはデフォルトで有効桁が6桁)

HideMath.dllのFormatコマンドで、どの様な指定を試したのか、わかり
ませんが、"%10.lf"(10文字幅で、小数点以下表示しない)を指定すれば
いいかも。

[ ]
RE:05216 指数形式にしない方法No.05217
コイ さん 06/08/20 12:37
 
>秀丸エディタの浮動小数点バージョンの話ですよね?
>HideMath.dllのFormatコマンドで、どの様な指定を試したのか、わかり
>ませんが、"%10.lf"(10文字幅で、小数点以下表示しない)を指定すれば
>いいかも。

アルビレオさん、h-tomさん、ご返事ありがとうございました。
そうです、小数点以下の計算が必要だったので浮動小数点バージョン
を導入しました。
アルビレオさんのはむずかしそうだったのでh-tomさんので
試してみました。すみません。
うまくいきましたので、これから本題のマクロの中に入れてやって
みます。

以下、試してみた例文です。一行目はinsertの結果です。

> 1230000000
>
> loaddll "hidemath.dll";
> if( !result ) {
>  message "hidemath.dllのロードに失敗しました。";
>  endmacro;
>  }
>
> #n=123;
> #m=10000000;
> #p=#n*#m;
>
> $s = dllfuncstr( "Format", "%10.lf", #p );
>
> gofiletop;
> insert $s;
>
> message "@"+$s+"@";
> endmacro;

[ ]