इसके माध्यम से साझा किया गया


डेटा प्रकार

सूचना छोटे, असतत मानों में प्रवाहित होती है, बिल्कुल स्प्रेडशीट की कोशिकाओं की तरह। Power Fx उदाहरण के लिए, जन्मदिन फ़ील्ड और वर्षगांठ फ़ील्ड में डेटा दिनांक मान के रूप में प्रवाहित होगा जिसमें वर्ष, महीना और दिन शामिल हैं. Power Fx वह जानता है कि इन मानों को कैसे प्रारूपित किया जाए, प्रत्येक के लिए क्या उपयुक्त है, इनपुट को कैसे सीमित किया जाए, तथा मानों को डेटाबेस के साथ कैसे साझा किया जाए। जन्मदिन लोगों के लिए वर्षगांठ से भिन्न होता है, लेकिन सिस्टम उन्हें ठीक उसी तरह से प्रबंधित करता है. इस मामले में, दिनांकडेटा प्रकार का एक उदाहरण है.

यह आलेख उन डेटा प्रकारों के बारे में विवरण प्रदान करता है जो Power Fx समर्थित करता है। जब Power Fx किसी बाहरी डेटा स्रोत से जुड़ता है, तो उस स्रोत में प्रत्येक डेटा प्रकार को डेटा प्रकार से मैप किया जाता है। Power Fx

डेटा प्रकार विवरण उदाहरण
बूलियन सही या गलत मान. बिना किसी तुलना के सीधे If, Filter और अन्य कार्यों में उपयोग किया जा सकता है. सत्य
पसंद विकल्पों के सेट से विकल्प, संख्या द्वारा समर्थित. यह डेटा प्रकार संख्यात्मक मान के साथ स्थानीयकृत किए जाने योग्य पाठ लेबल जोड़ता है. अनुप्रयोग में लेबल दिखाई देता है और संख्यात्मक मान तुलना के लिए संग्रहीत और उपयोग किया जाता है. यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित होता है यदि Choice फ़ील्ड का उदाहरण नाम द्वारा उपयोग किया जाता है। ThisItem.ऑर्डरस्थिति
रंग एक अल्फा चैनल सहित रंग का विशेष वर्णन. रंग.लाल
रंग मान( "#102030" )
आरजीबीए( 255, 128, 0, 0.5 )
मुद्रा एक मुद्रा मान जो एक फ्लोटिंग-पॉइंट संख्या में संग्रहीत किया गया. मुद्रा मान मुद्रा-स्वरूपण विकल्पों के साथ संख्या मान के समान हैं. मुद्रा डेटा प्रकार प्रकार फ़ंक्शन द्वारा समर्थित नहीं है। 123
4.56
तारीख अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र में समय के बिना दिनांक. दिनांक( 2019, 5, 16 )
दिनांक समय अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र में समय के साथ दिनांक. DateTimeValue( "16 मई, 2019 1:23:09 PM" )
दशमलव उच्च परिशुद्धता, आधार 10 संचालन और सीमित सीमा वाली संख्या। 123
दशमलव( "1.2345" )
तैरना मानक परिशुद्धता, आधार 2 संचालन और विस्तृत श्रृंखला वाली एक संख्या। 123
8.903e121
1.234e-200
GUID A वैश्विक स्तर पर विशिष्ट पहचानकर्ता. गाइड()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
हाइपरलिंक हाइपरलिंक वाला पाठ स्ट्रिंग. "https://powerapps.microsoft.com"
छवि यूनिवर्सल रिसोर्स आइडेंटिफ़ायर (URI) पाठ स्ट्रिंग की छवि में .jpeg, .png, .svg, .gif, या अन्य सामान्य वेब-छवि प्रारूप. Image डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित नहीं है। MyImage को ऐप संसाधन के रूप में जोड़ा गया
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
मिडिया वीडियो या ऑडियो रिकॉर्डिंग के लिए URI पाठ स्ट्रिंग. मीडिया डेटा प्रकार टाइप फ़ंक्शन द्वारा समर्थित नहीं है। MyVideo को ऐप संसाधन के रूप में जोड़ा गया
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
संख्या दशमलव (अधिकांश Power Fx होस्ट) या फ़्लोट (कैनवास ऐप) के लिए एक उपनाम। यदि किसी स्थिति के लिए किसी भी प्रकार की संख्या का उपयोग किया जा सकता है, तो अधिकतम संगतता के लिए संख्या का उपयोग करें। 123
0.0123
1ई4
अभिलेख डेटा मानों का रिकॉर्ड. इस मिश्रित डेटा प्रकार में अन्य डेटा प्रकार के उदाहरण हैं जो इस विषय में सूचीबद्ध हैं. अधिक जानकारी: आतालिकाओं के साथ कार्य करें कर रहे है. यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित है यदि Record का एक उदाहरण उपयोग किया जाता है। { कंपनी: "नॉर्थविंड ट्रेडर्स",
Staff: 35,
NonProfit: false }
रिकॉर्ड संदर्भ टेबल में एक रिकॉर्ड का संदर्भ. इस तरह के संदर्भों का उपयोग अक्सर बहुरूपी लुकअप के साथ किया जाता है. अधिक जानकारी: संदर्भ के साथ कार्य कर रहे है. यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित नहीं है. प्रथम(खाते).स्वामी
मेज़ रिकॉर्ड्स का एक तालिका. सभी अभिलेखों में समान डेटा प्रकारों के साथ अपने फ़ील्ड के लिए समान नाम होना चाहिए और छोड़े गए फ़ील्ड को रिक्त माना जाता है. इस मिश्रित डेटा प्रकार में अन्य डेटा प्रकार के उदाहरण हैं जो इस विषय में सूचीबद्ध हैं. अधिक जानकारी: आतालिकाओं के साथ कार्य करें कर रहे है. यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित है यदि Table का उदाहरण उपयोग किया जाता है। तालिका( { प्रथम नाम: "सिडनी",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
मूलपाठ यूनिकोड पाठ स्ट्रिंग. "हैलो वर्ल्ड"
समय ऐप के उपयोगकर्ता के समय क्षेत्र में एक तारीख के बिना एक समय. समय( 11, 23, 45 )
अलिखित एक अघोषित प्रकार का ऑब्जेक्ट. अंतर्निहित ऑब्जेक्ट कोई भी मौजूदा प्रकार हो सकता है, और इसे Boolean(), Value(), Table(), आदि जैसे फ़ंक्शन का उपयोग करके संगत प्रकारों में परिवर्तित किया जा सकता है। अधिक जानकारी के लिए, अलिखित ऑब्जेक्ट और JSON के साथ कार्य करना देखें। ParseJSON("{ ""फ़ील्ड"" : 1234 }").फ़ील्ड
खालीपन केवल व्यवहार उपयोगकर्ता परिभाषित फ़ंक्शन द्वारा उपयोग किया जाता है, यह इंगित करता है कि फ़ंक्शन का कोई रिटर्न प्रकार नहीं है। यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित नहीं है. भले ही किसी फ़ंक्शन का कोई रिटर्न प्रकार या मान न हो, फिर भी वह हमेशा त्रुटि लौटा सकता है। नमस्ते(): शून्य = { सूचित करें( "नमस्ते!" ) }
हां नहीं एक संख्या द्वारा समर्थित, कई विकल्पों में से दो विकल्प. यह डेटा प्रकार बूलियन मान के साथ स्थानीयकृत किए जाने योग्य पाठ लेबल जोड़ता है. अनुप्रयोग में लेबल दिखाई देता है, और बूलियन मान संग्रहीत और तुलना के लिए उपयोग किया जाता है. यह डेटा प्रकार Type फ़ंक्शन द्वारा समर्थित होता है, यदि Yes/No फ़ील्ड का उदाहरण नाम द्वारा उपयोग किया जाता है। यहआइटम.करयोग्य

इन डेटा प्रकारों में से कई समान हैं और एक ही मुख्य प्रतिनिधित्व है, जैसे कि हाइपरलिंक फ़ील्ड को पाठ के रूप में माना जा रहा है. अतिरिक्त डेटा प्रकार प्रपत्रों और अन्य नियंत्रणों में बेहतर डिफ़ॉल्ट अनुभव प्रदान करते हैं.

रिक्त

सभी डेटा प्रकारों में रिक्त का मान हो सकता है (दूसरे शब्दों में, कोई मान नहीं). शब्द "अमान्य" का उपयोग अक्सर इस अवधारणा के लिए डेटाबेस में किया जाता है.

चर या फ़ील्ड को रिक्त सेट करने के लिए Set या Patch फ़ंक्शन के साथ Blank फ़ंक्शन का उपयोग करें. उदाहरण के लिए, सेट (x, रिक्त () ) वैश्विक चर x में किसी भी मान को हटाता है.

IsBlank फ़ंक्शन का उपयोग करके रिक्त मान के लिए परीक्षण करें. Coalesce फ़ंक्शन का उपयोग करके संभव रिक्त मानों को गैर-रिक्त मानों से बदलें.

क्योंकि सभी डेटा प्रकार रिक्त का समर्थन करते हैं, बूलियन और दो विकल्प डेटा प्रकार प्रभावी रूप से तीन संभावित मान हैं.

इन सभी चार प्रकार के डेटा पाठ की पंक्ति यूनिकोड पर आधारित हैं.

एंबेडेड पाठ

फ़ॉर्मूले में एंबेडेड पाठ स्ट्रिंग्स दोहरे उद्धरण चिह्नों में संलग्न हैं. पाठ स्ट्रिंग में एकल दोहरे उद्धरण का प्रतिनिधित्व करने के लिए साथ दो दोहरे उद्धरण चिह्नों का उपयोग करें. उदाहरण के लिए, बटन नियंत्रण के OnSelect गुण में निम्न फ़ॉर्मूले का उपयोग करना:

Notify( "Jane said ""Hello, World!""" )

जब बटन दबाया जाता है तो बैनर में परिणाम होता है जहां पहले और अंतिम दोहरे उद्धरण छोड़े गए हैं (जैसा कि वे पाठ स्ट्रिंग को चित्रित करते हैं) और हैलो, वर्ल्ड के आसपास दोहराए गए दोहरे उद्धरण एकल दोहरे उद्धरण से प्रतिस्थापित किए जाते हैं:

जेन द्वारा कहे गए संदेश

पहचानकर्ता नाम के लिए ऐसे एकल उद्धरण चिह्नों का उपयोग नहीं किया जाता है जिसमें विशेष वर्ण होते हैं और पाठ स्ट्रिंग के भीतर कोई खास महत्व नहीं होता है.

स्ट्रिंग इंटरपोलेशन

पाठ स्ट्रिंग के भीतर सूत्र एम्बेड करने के लिए स्ट्रिंग इंटरपोलेशन का उपयोग करें. यह दृष्टिकोण अक्सर Concatenate फ़ंक्शन या & ऑपरेटर का उपयोग करने की तुलना में काम करना और आउटपुट को विज़ुअलाइज़ करना आसान होता है।

टेक्स्ट स्ट्रिंग के आगे डॉलर चिह्न $ लगाएँ और कर्ली ब्रेसेस { } के साथ एम्बेड किए जाने वाले सूत्र को संलग्न करें. टेक्स्ट स्ट्रिंग में कर्ली ब्रेस शामिल करने के लिए, बार-बार कर्ली ब्रेसेस का उपयोग करें: {{ या }}. स्ट्रिंग प्रक्षेप का उपयोग कहीं भी किया जा सकता है जहां एक मानक पाठ स्ट्रिंग का उपयोग किया जा सकता है.

उदाहरण के लिए, वैश्विक चर के साथ इस सूत्र पर विचार करें 3 पर सेट सेब और 4 पर सेट केले :

$"We have {Apples} apples, {Bananas} bananas, yielding {Apples+Bananas} fruit total."

यह सूत्र टेक्स्ट यह स्ट्रिंग लौटाता है We have 3 apples, 4 bananas, yielding 7 fruit total.सेब और केले चरों को गणितीय सूत्र सेब+केले के परिणाम वाले कर्ली ब्रेसिज़ की जगह पाठ में डाला गया है. कर्ली ब्रेसिज़ के आसपास के स्थान और अन्य वर्ण जैसे हैं वैसे ही संरक्षित किए जाते हैं.

एंबेडेड फ़ार्मुलों में कोई भी फ़ंक्शन या ऑपरेटर शामिल हो सकते हैं. केवल इतना ही आवश्यक है कि सूत्र के परिणाम को एक टेक्स्ट स्ट्रिंग के लिए बाध्य किया जा सके. उदाहरण के लिए, यह सूत्र अभिवादन में उपनाम प्रविष्ट करता है, यदि यह दिया गया है, या प्रथम नाम यदि नहीं दिया गया है:

$"Welcome {Coalesce( NickName, FirstName )}, it's great to meet you!"

अगर NickName "जो" पर सेट है, तो यह फ़ॉर्मूला यह टेक्स्ट स्ट्रिंग बनाता है स्वागत है जो, आपसे मिलकर बहुत खुशी हुई!. लेकिन अगर NickName है रिक्त और NickName "यूसुफ" है, तो यह सूत्र इसके बजाय प्रिय जोसफ, आपसे मिलकर अच्छा लगा! बनाता है.

स्ट्रिंग इंटरपोलेशन में एम्बेड किए गए फ़ॉर्मूला में मानक टेक्स्ट स्ट्रिंग शामिल हो सकते हैं. उदाहरण के लिए, यदि न तो उपनाम न ही प्रथम नाम उपलब्ध कराया गया था, तब भी हम प्रदान कर सकते थे "दोस्त" एक विकल्प के रूप में:

$"Welcome {Coalesce( NickName, FirstName, "Friend" )}!"

स्ट्रिंग इंटरपोलेशन को नेस्टेड भी किया जा सकता है. इस उदाहरण पर विचार करें जहां प्रथम, मध्य, और अंतिम नामों को एक अभिवादन में जोड़ा जाता है. भले ही इनमें से एक या दो मान रिक्त हों, नाम भागों के बीच रिक्त स्थानों की सही संख्या बनाए रखी जाती है। यदि कोई भी भाग प्रदान नहीं किया जाता है, तो आंतरिक स्ट्रिंग इंटरपोलेशन एक खाली स्ट्रिंग में संक्षिप्त हो जाएगा, और "मित्र" द्वारा Coalesce फ़ंक्शन द्वारा प्रतिस्थापित किया जाएगा.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
प्रथम मध्य अंतिम परिणाम
जॉन कुनीसी डो Welcome John Quincy Doe!
जॉन खाली डो Welcome John Doe!
खाली खाली डो Welcome Doe!
खाली खाली खाली Welcome Friend!

नई-पंक्तियां

एंबेडेड टेक्स्ट स्ट्रिंग्स में न्यूलाइन्स हो सकती हैं. उदाहरण के लिए, निम्न के लिए लेबल नियंत्रण के पाठ गुण को सेट करने पर विचार करें:

"Line 1
Line 2
Line 3"

इस सूत्र के परिणामस्वरूप लेबल नियंत्रण में तीन पंक्तियाँ दिखाई देती हैं:

एम्बेडेड टेक्स्ट स्ट्रिंग और लेबल नियंत्रण, लाइन 1, लाइन 2 और लाइन 3 के साथ तीन लाइनें दिखाता है।

स्ट्रिंग इंटरपोलेशन के साथ न्यूलाइन भी समर्थित हैं:

$"Line {1}
Line {1+1}
Line {1+1+1}"

जिसके परिणामस्वरूप वही आउटपुट प्राप्त होता है:

स्ट्रिंग इंटरपोलेशन सूत्र और लेबल नियंत्रण, लाइन 1, लाइन 2 और लाइन 3 के साथ तीन लाइनें दिखा रहा है।

छवि और मीडिया संसाधन

फ़ाइल मेनू के माध्यम से, आप छवि, वीडियो और ऑडियो फ़ाइलों को अनुप्रयोग संसाधनों के रूप में जोड़ सकते हैं. आयातित फ़ाइल का नाम अनुप्रयोग में संसाधन नाम बन जाता है. इस ग्राफ़िक में, नॉर्थविंड ट्रेडर्स लोगो, जिसका नाम nwindlogo है, को ऐप में जोड़ा गया है:

नॉर्थविंड संसाधन.

किसी अनुप्रयोग में इस संसाधन का उपयोग करने के लिए, इसे छवि नियंत्रण की छवि गुण में निर्दिष्ट करें:

नॉर्थविंड छवि.

छवियों और अन्य मीडिया के लिए URIs

आप उस अंतिम उदाहरण में लेबल नियंत्रण के पाठ गुण को nwindlogo पर सेट करके अधिक गहन खोज कर सकते हैं. लेबल एक पाठ स्ट्रिंग दिखाता है:

नॉर्थविंड पाठ.

कैनवास अनुप्रयोग प्रत्येक छवि या अन्य मीडिया फ़ाइल का संदर्भ देते हैं, चाहे वह URI टेक्स्ट स्ट्रिंग द्वारा क्लाउड में जोड़ा गया हो या अनुप्रयोग संसाधन के रूप में जोड़ा गया हो.

उदाहरण के लिए, छवि छवि नियंत्रण का गुण न केवल अनुप्रयोग संसाधनों को स्वीकार करता है, बल्कि वेब पर छवियों का लिंक भी देता है जैसे कि "https://northwindtraders.com/logo.jpg". गुण इनलाइन छवियों को भी स्वीकार करता है जो इस उदाहरण में डेटा URI योजना का उपयोग करती हैं:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

वह URI दो पर्पल डायमंड का विस्तारित संस्करण प्रदर्शित करता है:

दोहरे हीरे.

यदि आप कैमरा नियंत्रण के फ़ोटो गुण के लिए छवि नियंत्रण का छवि गुण सेट करते हैं, तो आप कैमरा नियंत्रण में कैप्चर की गई नवीनतम छवि दिखा सकते हैं. अनुप्रयोग छवि में मेमोरी में रखता है, और कैमरा नियंत्रण का फोटो गुण छवि के लिए एक URI संदर्भ देता है. चित्र और कैमरे की फ़ोटो गुण "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1" दे सकता है.

आप किसी छवि या किसी अन्य मीडिया फ़ाइल को डेटाबेस में संग्रहीत करने के लिए URI का उपयोग करते हैं. इस तरह, अनुप्रयोग वास्तविक डेटा को तब तक पुनः प्राप्त नहीं करता है जब तक कि इसकी आवश्यकता न हो. उदाहरण के लिए, Microsoft Dataverse टेबल में अटैचमेंट "appres://datasources/Contacts/table/..." लौटा सकता है, जैसा कि कैमरे के उदाहरण में है, आप छवि नियंत्रण की छवि संपत्ति को इस संदर्भ में सेट करके इस छवि को प्रदर्शित कर सकते हैं, जो बाइनरी डेटा को पुनः प्राप्त करती है.

जब आप एक मीडिया डेटा प्रकार, जैसे छवि, डेटाबेस में सहेजते हैं, तो अनुप्रयोग वास्तविक छवि या मीडिया डेटा भेजता है, URI संदर्भ नहीं.

आकार सीमा

पाठ स्ट्रिंग्स और URI के रूप में, इन डेटा प्रकारों की लंबाई की कोई पूर्व निर्धारित सीमा नहीं है.

बाइनरी डेटा जो इन डेटा प्रकारों को संदर्भित करता है, इसके साइज़ की भी कोई पूर्व निर्धारित सीमा नहीं है. उदाहरण के लिए, कैमरा नियंत्रण के माध्यम से कैप्चर की गई छवि जिसे "appres://..." के रूप में संदर्भित किया जाता है, वह डिवाइस के कैमरे द्वारा जुटाई जा सकने वाली बड़ी और उच्च रिज़ॉल्यूशन वाली हो सकती है। मीडिया फ़ाइलों का रिज़ॉल्यूशन, फ़्रेम दर और अन्य एट्रिब्यूट्स डेटा प्रकार द्वारा सीमित नहीं हैं, लेकिन मीडिया को चलाने और कैप्चर करने के लिए विशिष्ट नियंत्रणों की अपनी सीमाएं हो सकती हैं.

हालांकि, सभी डेटा आकार अनुप्रयोग में उपलब्ध मेमोरी की मात्रा के अधीन हैं. डेस्कटॉप कंप्यूटर पर चलने वाले ब्राउज़र आमतौर पर 100 मेगाबाइट से अधिक डेटा का समर्थन करते हैं. हालांकि, उपकरण पर उपलब्ध मेमोरी की मात्रा जैसे कि फोन पर बहुत कम हो सकती है, आमतौर पर 30-70 मेगाबाइट्स की सीमा के बीच. यह निर्धारित करने के लिए कि आपका ऐप इन सीमाओं के भीतर चलता है या नहीं, उन सभी डिवाइस पर सामान्य परिदृश्यों का परीक्षण करें जिन पर इसे चलना चाहिए.

सर्वोत्तम कार्य प्रणाली के रूप में, जब तक आवश्यक हो, केवल मेमोरी में डेटा रखें. जितनी जल्दी हो सके डेटाबेस में छवियों को अपलोड करें; छवियों को केवल तभी डाउनलोड करें, जब अनुप्रयोग का उपयोगकर्ता उनके लिए अनुरोध करे.

संख्याएं

नोट

Power Apps केवल फ़्लोट का समर्थन करता है और यह सभी संख्याओं का प्रकार है। दशमलव समर्थन जल्द ही जोड़ा जाएगा.

Power Fx दो प्रकार की संख्याओं का समर्थन करता है: दशमलव और फ़्लोट (समानार्थी शब्दों के साथ संख्या और मुद्रा)।

दशमलव अधिकांश व्यावसायिक गणनाओं के लिए सर्वोत्तम है। यह आधार 10 में संख्याओं को सटीक रूप से प्रदर्शित कर सकता है, जिसका अर्थ है कि इसे सटीक रूप से प्रदर्शित किया जा सकता है और गणना के दौरान पूर्णांकन त्रुटियों से बचा जा सकेगा। 0.1 किसी भी व्यावसायिक आवश्यकता के लिए इसकी रेंज काफी बड़ी है, 1028 तक और 28 अंकों तक की परिशुद्धता के साथ। दशमलव अधिकांश Power Fx होस्टों के लिए डिफ़ॉल्ट संख्यात्मक डेटा प्रकार है, जिसका उपयोग तब किया जाता है जब कोई केवल 2*2 लिखता है।

फ्लोट वैज्ञानिक गणनाओं के लिए सर्वोत्तम है। यह 10308 तक की बड़ी रेंज में संख्याओं का प्रतिनिधित्व कर सकता है। परिशुद्धता 15 दशमलव स्थानों तक सीमित है और गणित आधार 2 पर आधारित है, इसलिए यह कुछ सामान्य दशमलव मानों को सटीकता से प्रस्तुत नहीं कर सकता है। फ्लोट का प्रदर्शन भी उच्च होता है और यदि वह एक कारक है तथा परिशुद्धता महत्वपूर्ण नहीं है तो इसे प्राथमिकता दी जाती है।

दशमलव संख्याएं

दशमलव डेटा प्रकार सबसे अधिक बार .NET दशमलव डेटा प्रकार का उपयोग करता है। कुछ होस्ट, जैसे कि Dataverse सूत्र कॉलम जो SQL सर्वर में चलाए जाते हैं, SQL सर्वर दशमलव डेटा प्रकार का उपयोग करते हैं।

दशमलव गणित उसी तरह करता है जिस तरह आपने स्कूल में सीखा था, आधार 10 अंकों का उपयोग करते हुए, बहुत छोटे अंतरों से होने वाली पूर्णांकन त्रुटियों से बचने के लिए महत्वपूर्ण है जो आधार 2 गणित का उपयोग करते समय जमा हो सकते हैं (जैसा कि फ्लोट द्वारा उपयोग किया जाता है)।

सीमा धनात्मक 79,228,162,514,264,337,593,543,950,335 से ऋणात्मक 79,228,162,514,264,337,593,543,950,335 तक है। दशमलव विभाजक को इन संख्याओं के भीतर कहीं भी रखा जा सकता है, जिससे 28 अंकों तक की परिशुद्धता प्राप्त होती है, तथा फिर भी इनका सटीक प्रतिनिधित्व किया जा सकता है। उदाहरण के लिए, 79,228,162,514,264.337593543950335 को सटीक रूप से दर्शाया जा सकता है, जैसा कि 7.9228162514264337593543950335 को भी दर्शाया जा सकता है।

दशमलव संख्याएं

फ्लोट डेटा प्रकार, जिसे संख्या या मुद्रा के रूप में भी जाना जाता है, IEEE 754 डबल-परिशुद्धता फ़्लोटिंग-पॉइंट मानक का उपयोग करता है। यह मानक –1.79769 x 10308 से 1.79769 x 10308 तक काम करने के लिए बहुत बड़ी संख्या में नंबर प्रदान करता है. सबसे छोटा मान जो दर्शाया जा सकता है वह 5 x 10–324 है.

फ़्लोट –9,007,199,254,740,991 (–(253 – 1)) और 9,007,199,254,740,991 (253 – 1) के बीच पूर्ण संख्याओं (या पूर्णांकों) का सटीक रूप से प्रतिनिधित्व कर सकता है। यह सीमा 32-बिट (या 4-बाइट) पूर्णांक डेटा प्रकारों से बड़ी है जो डेटाबेस आमतौर पर उपयोग करते हैं. हालांकि, कैनवास अनुप्रयोग 64-बिट (या 8-बाइट) पूर्णांक डेटा प्रकारों का प्रतिनिधित्व नहीं कर सकते हैं. आप संख्या को किसी टेक्स्ट फ़ील्ड में संग्रहीत करना चाह सकते हैं या किसी टेक्स्ट फ़ील्ड में संख्या की प्रतिलिपि बनाने के लिए परिकलित कॉलम का उपयोग कर सकते हैं, ताकि वह कैनवास ऐप के टेक्स्ट डेटा प्रकार में मैप हो जाए. इस तरीके से, आप इन मानों को पकड़, प्रदर्शित और दर्ज कर सकते हैं, और उनकी तुलना यह निर्धारित करने के लिए कर सकते हैं कि वे बराबर हैं या नहीं; हालांकि, आप इस रूप में उन पर संख्यात्मक गणना नहीं कर सकते हैं.

फ्लोटिंग-पॉइंट अंकगणित अनुमानित है, इसलिए यह कभी-कभी कई प्रलेखित उदाहरणों के साथ अप्रत्याशित परिणाम दे सकता है. आप फ़ॉर्मूला 55 / 100 * 100 से ठीक 55 और (55 / 100 * 100) - 55 से ठीक शून्य आने की उम्मीद कर सकते हैं. हालांकि, बाद वाला फ़ॉर्मूला 7.1054 x 10–15 देता है, जो बहुत छोटा है लेकिन शून्य नहीं है. यह छोटा अंतर आम तौर पर समस्या का कारण नहीं बनता है, और परिणाम दिखाते समय अनुप्रयोग इसे दूर कर देता है. हालांकि, छोटे अंतर बाद की गणनाओं में मिश्रित हो सकते हैं और गलत उत्तर दे सकते हैं.

डेटाबेस सिस्टम अक्सर मुद्राओं को संग्रहीत करते हैं और दशमलव गणित का उपयोग करके गणना करते हैं, जो एक छोटी रेंज प्रदान करता है लेकिन सटीक पर अधिक नियंत्रण होता है. डिफ़ॉल्ट रूप से, कैनवास अनुप्रयोग फ्लोटिंग-पॉइंट मानों के अंदर और बाहर की मुद्राओं को मैप करते हैं; इसलिए, परिणाम एक मूल दशमलव डेटा प्रकार में की गई गणनाओं से भिन्न हो सकता है. आपके ऐप की सटीकता आवश्यकताओं के आधार पर, आप इन मानों के साथ Text के रूप में काम करना चाह सकते हैं, जैसा कि पहले बड़े पूर्णांकों के लिए वर्णित किया गया है।

डिफ़ॉल्ट और रूपांतरण

नोट

Power Apps केवल फ़्लोट का समर्थन करता है और यह सभी संख्याओं का प्रकार है। दशमलव समर्थन जल्द ही जोड़ा जाएगा.

अधिकांश होस्ट डिफ़ॉल्ट रूप से दशमलव का उपयोग करते हैं। Power Fx इस डिफ़ॉल्ट का अर्थ है:

  • सूत्रों में शाब्दिक संख्याएँ. संख्या 1.234 को दशमलव मान के रूप में व्याख्यायित किया जाता है। उदाहरण के लिए, सूत्र 1.234 * 21.234 और 2 को दशमलव के रूप में व्याख्या करता है और दशमलव परिणाम देता है।
  • मूल्य फ़ंक्शन. Value( "1.234" ) एक दशमलव मान लौटाता है। उदाहरण के लिए, सूत्र Value( "1.234" ) * 2 में, मान फ़ंक्शन पाठ स्ट्रिंग "1.234" की सामग्री को दशमलव के रूप में व्याख्या करता है।

Float मानों के साथ काम करने के लिए, Float फ़ंक्शन का उपयोग किया जाता है। हमारे उदाहरण को आगे बढ़ाते हुए, Float( 1.234 )दशमलव1.234 को फ़्लोट में परिवर्तित करता है। Float का उपयोग Value के प्रतिस्थापन के रूप में भी किया जा सकता है, ताकि Float( "1.234" ) जैसे फ़्लोटिंग पॉइंट नंबर वाले स्ट्रिंग को Float value में परिवर्तित किया जा सके, जो तब आवश्यक होता है जब संख्या को Decimal के रूप में प्रदर्शित नहीं किया जा सकता है।

सारांश:

उपयोग दशमलव तैरना
सूत्रों में अक्षरशः संख्याएँ 1.234 Float( 1.234 )
Float( "1.234" )
पाठ स्ट्रिंग से रूपांतरण Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
संख्यात्मक प्रकारों के बीच रूपांतरण Decimal( float ) Float( decimal )
पाठ स्ट्रिंग में रूपांतरण Text( decimal ) Text( float )

संख्यात्मक प्रकारों का मिश्रण

फ़्लोट और दशमलव मानों को स्वतंत्र रूप से मिश्रित किया जा सकता है। मिश्रित होने पर, दशमलव मान बड़ी सीमा के कारण फ़्लोट मानों में परिवर्तित हो जाते हैं। चूंकि इस रूपांतरण के परिणामस्वरूप परिशुद्धता में कमी आ सकती है, इसलिए यह महत्वपूर्ण है कि दोनों को अनावश्यक रूप से मिश्रित न किया जाए। चूंकि दशमलव डिफ़ॉल्ट शाब्दिक डेटा प्रकार है और अधिकांश संख्यात्मक फ़ंक्शन इस प्रकार को संरक्षित करते हैं, इसलिए इच्छा के बिना फ़्लोट पर जाने से बचना अपेक्षाकृत आसान है।

उदाहरण के लिए, pac power-fx repl CLI Power Platform स्थापित करने के बाद का उपयोग करके निम्नलिखित गणना पर विचार करें। चूँकि दोनों संख्याएँ दशमलव हैं, इसलिए गणना दशमलव में की जाती है, और परिणाम पूर्ण परिशुद्धता बनाए रखता है:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

यदि इसके बजाय, दूसरे ऑपरेंड को Float में बदल दिया गया, तो संपूर्ण गणना Float में की जाएगी, और छोटा आंशिक भाग खो जाएगा:

>> 1.0000000000000000000000000001 * Float(2)
2

दिनांक, समय, और DateTime

समय क्षेत्र

दिनांक/समय मान इन श्रेणियों में आते हैं:

  • उपयोगकर्ता स्थानीय: ये मान UTC (समन्वित सार्वभौमिक समय) में संग्रहीत किए जाते हैं, लेकिन ऐप उपयोगकर्ता का समय क्षेत्र इस बात को प्रभावित करता है कि ऐप इन मानों को कैसे दिखाता है और ऐप उपयोगकर्ता उन्हें कैसे निर्दिष्ट करता है। उदाहरण के रूप में, एक ही क्षण कनाडा में एक उपयोगकर्ता के लिए अलग-अलग दिखाई देता है, जैसा कि यह जापान में उपयोगकर्ता के लिए करता है.
  • समय क्षेत्र से स्वतंत्र: ऐप इन मानों को समान तरीके से दिखाता है और ऐप उपयोगकर्ता समय क्षेत्र की परवाह किए बिना उन्हें समान तरीके से निर्दिष्ट करता है। वही क्षण कनाडा में उपयोगकर्ता के लिए उसी तरह प्रकट होता है जैसा कि वह जापान में एक उपयोगकर्ता के लिए होता है. अनुप्रयोग निर्माता, जो अपने अनुप्रयोग को अलग-अलग समय क्षेत्र में चलने की उम्मीद नहीं करते हैं, वे इन मानों का उपयोग करते हैं क्योंकि वे समग्र सरल हैं.

यह तालिका कुछ उदाहरण दिखाती है:

दिनांक/समय प्रकार डेटाबेस में मान संग्रहीत किया गया मूल्य प्रदर्शित किया गया और UTC के पश्चिम में 7 घंटे में प्रवेश किया मूल्य प्रदर्शित किया गया और UTC के पूर्व में 4 घंटे में प्रवेश किया
उपयोगकर्ता स्थानीय रविवार,मई19,2019
4:00 पूर्वाह्न
शनिवार,मई18,2019
9:00 अपराह्न
रविवार,मई19,2019
8:00 पूर्वाह्न
समय क्षेत्र स्वतंत्र रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न

उपयोगकर्ता स्थानीय दिनांक/समय के लिए, कैनवास अनुप्रयोग ब्राउज़र या डिवाइस के समय क्षेत्र का उपयोग करते हैं, लेकिन मॉडल-चालित अनुप्रयोग Dataverse में उपयोगकर्ता की सेटिंग का उपयोग करते हैं. ये सेटिंग्स आम तौर पर मेल खाती हैं, लेकिन अगर ये सेटिंग्स अलग-अलग होंगी तो परिणाम अलग होंगे.

स्थानीय समय को UTC और फिर वापसी के लिए DateAdd और TimeZoneInformation फ़ंक्शन का उपयोग करें. इन फ़ंक्शन के लिए लेख के अंत में उदाहरण देखें.

सांख्यिक समकक्ष

कैनवास अनुप्रयोग सभी दिनांक/समय मूल्यों को रखते हैं और गणना करते हैं, चाहे उपयोगकर्ता स्थानीय हो या UTC में समय क्षेत्र स्वतंत्र. अनुप्रयोग उपयोगकर्ता को दिखाते समय अनुप्रयोग उपयोगकर्ता के समय क्षेत्र के आधार पर मानों का अनुवाद करता है और जब अनुप्रयोग उपयोगकर्ता उन्हें निर्दिष्ट करता है.

जब एक कैनवस अनुप्रयोग डेटा स्रोत से समय क्षेत्र स्वतंत्र मान पढ़ता है या किसी डेटा स्रोत पर ऐसा मान लिखता है, अनुप्रयोग स्वचालित रूप से अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र की कमी पूरी करने के लिए मान को समायोजित करता है. अनुप्रयोग तब मान को UTC मान के रूप में मानता है, जो अनुप्रयोग में अन्य सभी दिनांक/समय मानों के अनुरूप है. इस कमी को पूरा करने के कारण, मूल समय क्षेत्र स्वतंत्र मान तब प्रकट होता है जब अनुप्रयोग उपयोगकर्ता के समय क्षेत्र के लिए UTC मान समायोजित करता है.

किसी दिनांक/समय मान के लिए अंतर्निहित संख्यात्मक मान तक पहुंचने के लिए आप इस व्यवहार को अधिक बारीकी से Value फ़ंक्शन का उपयोग करके देख सकते हैं. यह फ़ंक्शन 1 जनवरी, 1970 00:00:00.000 UTC के बाद से मिलीसेकंड की संख्या के रूप में दिनांक/समय मान देता है.

क्योंकि UTC में प्रत्येक दिनांक / समय मान होता है, फ़ॉर्मूला Value( Date( 1970, 1, 1 ) ) दुनिया के अधिकांश हिस्सों में शून्य नहीं देता है क्योंकि Date फ़ंक्शन UTC में दिनांक देता है. उदाहरण के लिए, फ़ॉर्मूला UTC से आठ घंटे की भरपाई करने वाले समय क्षेत्र में 28,800,000 देगा. यह संख्या आठ घंटे में मिलीसेकंड की संख्या को दर्शाती है.

अपने उदाहरण पर लौटते हुए:

दिनांक/समय प्रकार डेटाबेस में मान संग्रहीत किया गया मूल्य प्रदर्शित किया गया और UTC के पश्चिम में 7 घंटे में प्रवेश किया मान फ़ंक्शन रिटर्न
उपयोगकर्ता स्थानीय रविवार,मई19,2019
4:00 पूर्वाह्न
शनिवार,मई18,2019
9:00 अपराह्न
1,558,238,400,000
(रविवार,मई19,2019
4:00 पूर्वाह्न UTC)
समय क्षेत्र स्वतंत्र रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न
1,558,263,600,000
(रविवार,मई19,2019
11:00 पूर्वाह्न UTC)

Unix समय परिवर्तित कर रहा

Unix टाइम 1 जनवरी, 1970 00:00:00 UTC के बाद से सेकंड की संख्या को दर्शाता है. चूंकि कैनवास अनुप्रयोग सेकंड के बजाय मिलीसेकंड का उपयोग करते हैं, आप दोनों को 1,000 से गुणा या विभाजित करके परिवर्तित कर सकते हैं.

उदाहरण के लिए, Unix टाइम 9 सितंबर, 2001, को 01:46:40 बजे UTC को 1,000,000,000 दिखाता है. कैनवास अनुप्रयोग में उस दिनांक/ समय के मान को दिखाने के लिए, इसे मिलीसेकंड में बदलने के लिए उस संख्या को 1,000 से गुणा करें, और फिर Text फ़ंक्शन में इसका उपयोग करें. फ़ॉर्मूला Text( 1000000000 * 1000, DateTimeFormat.UTC ) स्ट्रिंग 2001-09-09T01:46:40.000Z देता है.

हालांकि, यह फ़ंक्शन शनिवार, 8 सितंबर, 2001 18:46:40 देता है यदि आप DateTimeFormat.LongDateTime24 प्रारूप का उपयोग उस समय क्षेत्र में करते हैं, जो UTC से -7 घंटे (UTC के पश्चिम में 7 घंटे) से ऑफसेट है. यह परिणाम स्थानीय समय क्षेत्र के आधार पर DateTime मान को सही ढंग से दिखाता है.

Unix टाइम में बदलने के लिए, मान के परिणाम को 1,000 से विभाजित करें:
RoundDown( मान( UnixTime ) / 1000, 0 )

यदि आपको आगे की गणना के लिए दिनांक मान में Unix टाइम की आवश्यकता है या Power Apps के भीतर प्रदर्शित करना चाहते हैं, तो इस फ़ॉर्मूले का उपयोग करें:
DateAdd( दिनांक( 1970,1,1 ), UnixTime, सेकंड )

SQL Server

SQL सर्वर में Datetime, Datetime2 और अन्य दिनांक/समय डेटा प्रकार होता है जिसमें एक समय-क्षेत्र ऑफसेट शामिल नहीं होता है और यह इंगित नहीं करता है कि वे किस समय-क्षेत्र में हैं. कैनवस अनुप्रयोग मान लेते हैं कि ये मान UTC में संग्रहीत हैं और उन्हें उपयोगकर्ता स्थानीय के रूप में मानते हैं. यदि मान समय-क्षेत्र स्वतंत्र होने के लिए हैं, तो TimeZoneOffset फ़ंक्शन का उपयोग करना UTC अनुवादों के लिए सही है.

अनुप्रयोग के आंतरिक UTC प्रतिनिधित्व के लिए मान को परिवर्तित करते समय कैनवास अनुप्रयोग Datetimeoffset फ़ील्ड में शामिल समय-क्षेत्र जानकारी का उपयोग करते हैं. जब वे डेटा लिखते हैं, तो अनुप्रयोग हमेशा UTC को समय क्षेत्र (शून्य समय क्षेत्र ऑफसेट) के रूप में उपयोग करते हैं.

ISO 8601 अवधि प्रारूप में पाठ स्ट्रिंग्स के रूप में कैनवास अनुप्रयोग SQL सर्वर में समय डेटा प्रकार के मान पढ़ते और लिखते हैं. उदाहरण के लिए, आपको इस स्ट्रिंग प्रारूप का विश्लेषण करना चाहिए और पाठ स्ट्रिंग "PT2H1M39S" को समय मान में बदलने के लिए Time फ़ंक्शन का उपयोग करना चाहिए:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

मिश्रण दिनांक और समय की जानकारी

दिनांक, समय, और दिनांकसमय के अलग-अलग नाम हैं, लेकिन वे सभी दिनांक और समय के बारे में एक ही जानकारी रखते हैं।

दिनांक मान में इसके साथ समय की जानकारी शामिल हो सकती है, जो आमतौर पर आधी रात होती है. समय मान में तारीख की जानकारी हो सकती है, जो आमतौर पर 1 जनवरी, 1970 है. Dataverse भी केवल दिनांक फ़ील्ड के साथ समय की जानकारी संग्रहीत करती है, लेकिन डिफ़ॉल्ट रूप से केवल दिनांक की जानकारी दिखाती है. इसी तरह, कैनवास अनुप्रयोग कभी-कभी डिफ़ॉल्ट प्रारूप और नियंत्रण निर्धारित करने के लिए इन डेटा प्रकारों के बीच अंतर करते हैं.

दिनांक और समय मानों को सीधे जोड़ना और घटाना अनुशंसित नहीं है क्योंकि समय-क्षेत्र और अन्य रूपांतरण भ्रामक परिणाम पैदा कर सकते हैं. या तो पहले दिनांक/समय मान को मिलीसेकंड में परिवर्तित करने के लिए Value फ़ंक्शन का उपयोग करें और अनुप्रयोग उपयोगकर्ता के समय क्षेत्र को ध्यान में रखें या इनमें से किसी एक मान को जोड़ने या घटाने के लिए DateAdd और DateDiff फ़ंक्शन का उपयोग करें.

विकल्प और हां/नहीं

विकल्प और दो-विकल्प डेटा प्रकार एक ऐप उपयोगकर्ता को चुनने के लिए दो या अधिक विकल्प प्रदान करते हैं. उदाहरण के लिए, एक ऑर्डर स्थिति विकल्प नया, शिप किया गया, इनवॉइस किया गया और बंद विकल्प प्रदान कर सकता है. दो-विकल्प डेटा प्रकार केवल दो विकल्प प्रदान करता है.

ये दोनों डेटा प्रकार पाठ-स्ट्रिंग संदर्भ में अपने लेबल दिखाते हैं. उदाहरण के लिए, यदि नियंत्रण की टेक्स्ट संपत्ति उस विकल्प को संदर्भित करने वाले फॉर्मूला पर सेट है, तो एक लेबल नियंत्रण ऑर्डर-स्थिति विकल्पों में से एक दिखाता है. विकल्प लेबल को विभिन्न स्थानों में अनुप्रयोग उपयोगकर्ताओं के लिए स्थानीयकृत किया जा सकता है.

जब कोई अनुप्रयोग उपयोगकर्ता विकल्प का चयन करता है और उस परिवर्तन को सहेजता है, तो अनुप्रयोग डेटा को डेटाबेस में पहुंचाता है, जो उस डेटा को उस प्रतिनिधित्व में संग्रहीत करता है जो भाषा से स्वतंत्र है. विकल्प में एक विकल्प को संख्या के रूप में प्रेषित और संग्रहित किया जाता है, और दो-विकल्प डेटा प्रकार में एक विकल्प को बूलियन मान के रूप में प्रेषित और संग्रहित किया जाता है.

लेबल केवल प्रदर्शन उद्देश्यों के लिए हैं. आप लेबलों की सीधी तुलना नहीं कर सकते क्योंकि वे एक भाषा के लिए विशिष्ट हैं. इसके बजाय, प्रत्येक विकल्प में एक गणना होती है जो अंतर्निहित संख्या या बूलियन मान के साथ काम करती है. उदाहरण के लिए, आप इस सूत्र का उपयोग नहीं कर सकते हैं:

If( ThisItem.OrderStatus = "Active", ...

लेकिन आप इस सूत्र का उपयोग कर सकते हैं:

If( ThisItem.OrderStatus = OrderStatus.Active, ...

वैश्विक विकल्पों के लिए (जिसे टेबल साझा करती हैं), विकल्प-सेट गणना का नाम वैश्विक पसंद के नाम से मेल खाता है. स्थानीय विकल्पों के लिए (जो किसी टेबल के दायरे में हैं), नाम में टेबल का नाम हो सकता है. यदि अनेक टेबल में समान नाम वाले विकल्प हैं, तो यह व्यवहार टकरावों से बचाता है. उदाहरण के लिए, खाता टेबल में OrderStatus विकल्प हो सकता है और इसका नाम OrderStatus (खाते) हो सकता है. उस नाम में एक या अधिक स्थान और कोष्ठक शामिल हैं, इसलिए यदि आप इसे किसी फ़ॉर्मूले में संदर्भित करते हैं, तो आपको इसे एकल उद्धरण चिह्नों से घेरना चाहिए.

इसके अलावा, दो-विकल्प मान बूलियन मान के रूप में भी व्यवहार कर सकते हैं. उदाहरण के लिए, TaxStatus नामक दो-विकल्प मान में कर योग्य और गैर-कर योग्य लेबल हो सकते हैं, जो क्रमशः सही और गलत के अनुरूप हैं. प्रदर्शित करने के लिए, आप इस सूत्र का उपयोग नहीं कर सकते हैं:

If( ThisItem.Taxable = TaxStatus.Taxable, ...

आप इस समान फ़ॉर्मूले का भी उपयोग कर सकते हैं:

If( ThisItem.Taxable, ...