小数第2位の数値がマクロで表示できない

使い始めたわけ、ここがポイント、OOoグッズってあるの
返信する
一4654
記事: 2
登録日時: 10月 9, 2010, 1:19 pm

小数第2位の数値がマクロで表示できない

投稿記事 by 一4654 »

以下のマクロを実行してもxが0.05の時にループが終了してしまいます。それとメッセージテキスト1に1E-02とか表示されてしまいます。xが0.06の時にループ内の計算が行われるようにしたいのと、メッセージテキスト1に0.01,0.02,0.03,0.04,0.05,0.06と全部表示されるようにするにはどうすればいいですか?xはパーセンテージを表したいので、小数第2位までの小数だとします。

sub Macro3
dim x as double

for x = 0.01 to 0.06 step 0.01

msgbox x 'メッセージテキスト1
msgbox x + 1 メッセージテキスト2

next x
end sub
OpenOffice.org 3.2.1
OOO320m18

Windows xp
tani
記事: 60
登録日時: 6月 13, 2008, 10:12 am

Re: 小数第2位の数値がマクロで表示できない

投稿記事 by tani »

どうもMsgBoxのダイアログで表示フォーマットが自動的に指数表記になっているようですね。
計算上は支障ないと思いますが、表示上で何か問題になるようでしたら、独自のダイアログを作成するのがてっとり早いかな、と思います。

また、ループのカウンタに倍精度を使うのはあまり見たことがありません。ループカウンタは普通の整数を使い、
ループの中で倍精度の計算をするのが普通かなと思います。

試しにサンプルを作ってみました。(Mainを実行するとダイアログが表示されますのでボタンを押してみてください)
添付ファイル
fugafuga.ods
(9.34 KiB) ダウンロード数: 441 回
一4654
記事: 2
登録日時: 10月 9, 2010, 1:19 pm

OpenOffice.org3.3ではどうなりますかね....

投稿記事 by 一4654 »

 指数表記になるのも困惑しますが、もっと困惑しているのがFor...Next ループの実行回数です。単精度変数か倍精度変数をループカウンタに使うと、1回分実行回数が足りなくなります。OpenOffice.org Basicのサンプルコードを添付します。ループカウンタが単精度変数のFor...Next ループの実行回数、ループカウンタが倍精度変数のFor...Next ループの実行回数、ループカウンタが整数変数のFor...Next ループの実行回数を比べられるサンプルコードとなっています。
 ループカウンタを整数に、とのことですがhttp://docs.sun.com/app/docs/doc/819-1332/faanp?l=ja&a=view
にFor...Next ループのループカウンタの増分値を 0.5(単精度変数か倍精度変数)にしたサンプルコードが紹介されています。
添付ファイル
OpenOffice.orgBasic.zip
(415 バイト) ダウンロード数: 403 回
OpenOffice.org 3.2.1
OOO320m18

Windows xp
返信する

“はじめての方はまずこちらへどうぞ”に戻る