2017-03-18 24 views
5

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; की एक परिभाषा यह काम करता है के साथ। तो, मैं सोच रहा हूं कि संकलक इस तरह से क्यों व्यवहार करता है।

+0

:

का संभावित हल सहायकों वर्ग कार्यों का उपयोग करने के लिए है। – ventiseis

+0

(जंगली अनुमान) मैं पैटर्न देखता हूं: प्रत्येक अभिव्यक्ति में एक 'इंटीजर' निरंतर मौजूद होता है (और 'वास्तविक' में परिवर्तित हो जाता है)। यह अनुमान नहीं लगा रहा कि इसका क्या अर्थ हो सकता है, वैसे। –

+0

मैं एक स्पष्ट प्रकार-कास्ट की कोशिश करने का सुझाव दूंगा। जैसे 'विस्तारित (5.5)। एफआरसी; दुर्भाग्यवश मेरे पास परीक्षण करने के लिए डेल्फी का उचित संस्करण नहीं है। –

उत्तर

6

आपको कंपाइलर में त्रुटियां मिलीं। कृपया गुणवत्ता पोर्टल में इसकी रिपोर्ट करें। पारंपरिक `Win32` संकलक का उपयोग

myString := Extended.ToString(5.5); 
class function ToString(const Value: Extended): string; overload; inline; static; 
class function ToString(const Value: Extended; const AFormatSettings: TFormatSettings): string; overload; inline; static; 
class function ToString(const Value: Extended; const Format: TFloatFormat; const Precision, Digits: Integer): string; overload; inline; static; 
class function ToString(const Value: Extended; const Format: TFloatFormat; const Precision, Digits: Integer; 
          const AFormatSettings: TFormatSettings): string; overload; inline; static; 
+2

सबमिट किया गया [बग रिपोर्ट, आरएसपी-170 9 3 जारी करें] (https://quality.embarcadero.com/browse/RSP-17093)। – ventiseis

संबंधित मुद्दे