練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: format 関数に数値を渡すとエラーになる問題

コメントなし»

§対象ソフト

  • Irvine 1.3.1.127 & DMScript 0.3.12
  • DMonkey Script Host ver.0.3.9.1

§問題の概要

DMonkey のグローバルオブジェクトの format() 関数において、数値を渡すとエラーが発生する。

テストコード #1

format ('%d', 1+2);

これを実行すると

Exception: EConvertError(1) => Format '%d' invalid or incompatible with argument

というエラーが発生してしまう。%x にしても同じ。

1+21parseInt (1+2) に変更すると、エラーは発生しない。

テストコード #2

//var n = 1; // ok
//var n = parseInt (1 + 2); // ok
var n = 1 + 2; // ng

println ('typeof (n) = ' + typeof (n) + ', n = ' + n);
var s = format ('%d', n);
println (s);

テストコード #3

alert (format ('<%*s>', 10+20, 'test'));

エラーは発生しないが幅指定が無視される。

§原因

未調査。

§対策

parseInt() で数値に変換する。

format ('%d', parseInt (1+2));

§副作用

特に無いと思われる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です