質問:数値コモンの指数表記

Issue #893 resolved
Former user created an issue

テストプレイ中、ゴシップに数値コモンの値を埋め込んだ際に、 ゴシップに「5E+1」が埋め込まれ、これを数値コモンに代入した際にエラーが発生しました。

おそらく「50」が指数表記されたものだと思うのですが、どのような状況下でコモンの値が指数表記になるか教えていただければと思います。

(指数表記に関しては仕様かもしれませんが、分類がわからなかったのでbugとしています)

Comments (6)

  1. Kohaku Utakata

    すみません、ログアウトした状態で課題を作成してしまいましたが、この課題は私が作成しました。

  2. k4nagatsuki repo owner

    pull request #2686

    仕様ではありません。指数表記になっているのは問題です。桁数の少ない値でもあり、ちょっと指数表記になった原因に見当がつかないのですが、とりあえず文字列化の際に指数表記にはならないようにしておきました。

    その対応のため、やむを得ず小数点以下の桁数が多くなる場合は文字列化の際に最大で8桁となるようにし、それ以降が四捨五入されるようにしています。後でもっとよい方法を見つけたら緩和できるかもしれません。

  3. Kohaku Utakata

    ありがとうございます。仕様ではなかったのですね。

    以前のバージョンではデバッガから値を直接入力した際に指数表記されていましたが、
    最新版では数字表記になっているのが確認できました。

  4. k4nagatsuki repo owner

    あ、そこだったんですね。最初の実装時にはデバッガから入力した時もそうはならなかったと思うのですが、テストケースが不足していたか、Pythonのライブラリのアップデートで仕様が変わったのでしょう。

    現状では値が内部的に指数を使用する状態になっていても文字列化に強制的に普通の表記になるので、たぶん問題は起こらないと思います。

    ご確認ありがとうございます。未ログイン状態で立てたという事なので、私の方でクローズさせていただきます。

  5. Kohaku Utakata

    すみません、ややこしくしてしまいましたが、ゴシップに値を埋め込んだ際のエラーはデバッガから入力した場合ではありませんでした。
    なので、指数表記になる条件について質問させていただきました。

    ただ、デバッガ上で指数表記を確認したのを覚えていたので、確認のために上記のような方法を使わせていただきました。

    以上念のためご報告致します。
    ご対応ありがとうございました。

  6. Log in to comment