与System.SysUtils.TShortIntHelper
(和其他人)我可以写:
output := 5.ToString();
将数字格式化5
为string
. 也有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()
如果声明了扩展值const
,它也不起作用:
function TestFormat(): String;
const
q = 5.5;
begin
Result := q.ToString();
end;
但是有了它的定义q : extended = 5.5;
就可以了。所以,我想知道为什么编译器会这样。