秀丸での計算結果表示No.05701
W.Hiroshi さん 07/12/16 18:39
 
いつもお世話になっています W.hiroshiです。

以前、ここの会議室で、
No.05529「テキスト中の数値に対して計算」

と言う事で投稿して、マクロを作成していただいたことがありました。
ほとんどの場合問題無く、理想通りの動作をしていますが、特定の数値の組み合わせ
の時、ちょっとおかしな表示になります。

例えば、

X1.0
X2.0
X3.0
X4.0
X5.0
X6.0
X7.0
X8.0
X9.0
X0.0

と言うようなデータに対して、

Xに「0.1」を加算する(Y、Zに対しては何も入力しない)
を2回繰り返すと

X1.2
X2.2
X3.2
X4.199999999999999
X5.199999999999999
X6.199999999999999
X7.199999999999999
X8.199999999999999
X9.199999999999999
X0.2

と言うような結果になります。
このような計算結果表示は、秀丸の仕様上やむを得ない事なのでしょうか。

仕様上やむを得無い事なのであれば、
この計算結果を四捨五入して、本来の表記にしたいのですが、どのようにすればよい
でしょうか。

最終的に、
小数点以下4桁目を四捨五入して、小数点以下3桁目まで表記とする。
その結果、右側に0だけの時は0を消す。
小数点以下が、0だけの時は、小数点以下1桁目だけに0を残す。

1.123 -> 1.123
1.120 -> 1.12
1.100 -> 1.1
1.000 -> 1.0

と言うような表記になるようにしたいのですが。


WindowsXP
秀丸エディタ、浮動小数点数版(統合版) Ver7.07

よろしくお願いします。

[ ]
RE:05701 秀丸での計算結果表示No.05702
山紫水明 さん 07/12/16 21:20
 
 W.Hiroshiさん,

>ほとんどの場合問題無く、理想通りの動作をしていますが、特定の数値の組み
>合わせの時、ちょっとおかしな表示になります。

確かにおかしいですね。秀丸エディタ自身に問題がある可能性がありますので,
作者に問い合わせてみます。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05702 秀丸での計算結果表示No.05703
W.Hiroshi さん 07/12/16 22:34
 
山紫水明さん いつもお世話になっています。

>確かにおかしいですね。秀丸エディタ自身に問題がある可能性がありますので,
>作者に問い合わせてみます。

数量的にはほとんど同じ量の数値ではあるのですが、そのままの表記ではちょっと都
合が悪いので、やむを得ず手作業で修正してます。数が多くなってくると結構手間が
かかり、マクロの有り難みが無くなってしまいます。

本来、文章を編集する為のソフトである秀丸エディタに、どこまで計算の正確さを要
求して良い物か迷っていました。

お手数をおかけして申し訳ありません。


[ ]
RE:05701 秀丸での計算結果表示No.05704
Iranoan さん 07/12/17 14:40
 
 W.Hiroshi さん今日は、Iranoan です。
> 小数点以下4桁目を四捨五入して、小数点以下3桁目まで表記とする。
 ここまでに付いては、末尾の様に HideMath.dll の Format() 関数を使えば
よいと思います。またこの関数を使えば、この程度の桁数なら、結果がおかし
くなることも無いようです。すでに、秀丸担当さんが
http://www.maruo.co.jp/turukame/3/x01594_.html#1595
に回答を付けられていますが、str() 関数に問題があるようですね。
//--------------------------------------------------------------------
setfloatmode 1;
#a = 0.1;
#b = 4.1;
loaddll "HideMath.dll";
message dllfuncstr( "Format", "%.3lf",#a + #b);//四捨五入なし
message dllfuncstr( "Format", "%.3lf",#a + #b + 0.0005 );//四捨五入なし

[ ]
RE:05703 秀丸での計算結果表示No.05705
山紫水明 さん 07/12/17 20:22
 
 W.Hiroshiさん,

>本来、文章を編集する為のソフトである秀丸エディタに、どこまで計算の正確
>さを要求して良い物か迷っていました。

秀丸エディタ7.08βで直してもらっています。お試しください。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05704 秀丸での計算結果表示No.05706
山紫水明 さん 07/12/17 20:33
 
 Iranoanさん,

>> 小数点以下4桁目を四捨五入して、小数点以下3桁目まで表記とする。
> ここまでに付いては、末尾の様に HideMath.dll の Format() 関数を使えば
>よいと思います。

コメントありがとうございます。
元のスレッドはこの会議室の5529以下ですが,実際には常に小数点以下3桁固定
という要望ではないようです。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:05704 秀丸での計算結果表示No.05707
W.Hiroshi さん 07/12/17 22:25
 
Iranoan さん今日は、 W.Hiroshiです。
コメント有り難うございます。

とりあえず、秀丸本体側で何らかの対応をしていただけるようなので、しばらく様子
を見たいと思います。

[ ]
RE:05705 秀丸での計算結果表示No.05708
W.Hiroshi さん 07/12/18 16:49
 
山紫水明さん、こんにちはW.Hiroshiです。

>秀丸エディタ7.08βで直してもらっています。お試しください。

確認しました。

これで安心してマクロが使えそうです。
素早い対応感謝します。
有り難うございました。

これからもよろしくお願いします。

[ ]