私が書くことができる:リテラルでTExtendedHelperを使用するにはどうすればよいですか? <code>System.SysUtils.TShortIntHelper</code>(およびその他)
output := 5.ToString();
をstring
として数5
をフォーマットします。同様に、そこSystem.SysUtls.TExtendedHelper
はあるが、私はコンパイルすることができませんでしだ:
output := (5.0).ToString();
E2018:
:レコード、オブジェクトまたはクラス型が動作しません
他のバージョンを必要と
5.0.ToString()
(1.0+5.1).toString()
(5+0.).toString()
(E2029は言う: ')' 予想が、 ']' が見つかり)が実際にを働いています
バージョン:
(1+5.1).toString()
(1.1+1+5.1).toString()
5.9e0.toString()
拡張値が宣言されている場合
function TestFormat(): String;
const
q = 5.5;
begin
Result := q.ToString();
end;
をしかし、それは動作しますq : extended = 5.5;
の定義と:const
、それはどちらか動作しません。だから、私はなぜコンパイラがこのように動作するのだろうかと思っています。
:
この問題を回避するには、ヘルパークラスの機能を使用することです。 – ventiseis
(野生の推測)私はパターンを見ます:動作するすべての式で 'Integer'定数が存在します(そして' Real'に変換されます)。それが何を意味するかもしれないと推測しない、tho。 –
私は明示的な型キャストを試みることをお勧めします。例えば。 'Extended(5.5).Frac;'残念ながら私は自分自身をテストするための適切なバージョンのDelphiを持っていません。 –