double型の値が正しく表示されない

【ご質問】
RecordGridでdouble型の値が正しく表示されません。
正しく表示させるには、どのようにしたらよいでしょうか。

【回答】
これは2進数で表現しようとした際に丸めを必要とする値に関して発生する一般的な問題です。
例えば、0.1を2進数で表現しようとすると、「0.000110011001100…」という無限小数になります。
コンピュータでは有限の桁数分しか扱えませんので、このような値を扱う場合には必ず丸め処理が発生します。
その結果、表示上元の値とは異なる近似値になってしまいます。

以下のような回避策があります。
 RecordGridColumnに”format-spec”を設定する
 ※”format-spec”を使用することで、表示する値を適当な表示にフォーマットする事が可能です。

詳細は以下のサンプルをご参照ください。

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{let num:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField “Num”, domain = double}
        },
        {RecordData Num = 123456},
        {RecordData Num = 1234567},
        {RecordData Num = 12345678},
        {RecordData Num = 123456789},
        {RecordData Num = 1234567890},
        {RecordData Num = 1234567890.1}
    }
}

{let rg:RecordGrid =
    {RecordGrid
        record-source = num,
        height = 250pt,
        automatic-columns? = false,
        {RecordGridColumn “Num”}
    }
}

{value rg}