与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;就可以了。所以,我想知道为什么编译器会这样。