System.SysUtils.TShortIntHelper
(और अन्य) के साथ मैं लिख सकते हैं:मैं textendedHelper का उपयोग शाब्दिक पर कैसे कर सकता हूं?
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()
यदि विस्तारित मूल्य घोषित किया गया है const
, यह या तो काम नहीं करता है:
function TestFormat(): String;
const
q = 5.5;
begin
Result := q.ToString();
end;
लेकिन q : extended = 5.5;
की एक परिभाषा यह काम करता है के साथ। तो, मैं सोच रहा हूं कि संकलक इस तरह से क्यों व्यवहार करता है।
:
का संभावित हल सहायकों वर्ग कार्यों का उपयोग करने के लिए है। – ventiseis
(जंगली अनुमान) मैं पैटर्न देखता हूं: प्रत्येक अभिव्यक्ति में एक 'इंटीजर' निरंतर मौजूद होता है (और 'वास्तविक' में परिवर्तित हो जाता है)। यह अनुमान नहीं लगा रहा कि इसका क्या अर्थ हो सकता है, वैसे। –
मैं एक स्पष्ट प्रकार-कास्ट की कोशिश करने का सुझाव दूंगा। जैसे 'विस्तारित (5.5)। एफआरसी; दुर्भाग्यवश मेरे पास परीक्षण करने के लिए डेल्फी का उचित संस्करण नहीं है। –