इस प्रश्न के अनुसार: Fractional power of units of measures in F# एफ # में माप की इकाइयों के लिए समर्थित कोई अंश शक्तियां नहीं हैं।एफ # मापन मॉडलिंग मेट्रिक उपसर्ग (माइक्रो, मिली, नैनो)
मेरे आवेदन में, मेट्रिक उपसर्ग के साथ डेटा के बारे में सोचना फायदेमंद है, उदाहरण के लिए सेकंड के साथ काम करते समय। कभी-कभी मुझे मिली-सेकेंड में परिणाम की आवश्यकता होती है, कभी-कभी सेकंड में।
विकल्प मैं वर्तमान में उपयोग करने के बारे में सोच रहा हूँ इस
[<Measure>] type milli
[<Measure>] type second
let a = 10.0<second>;
let b = 10.0<milli*second>
जो मुझे देता है:
val a : float<second> = 10.0
val b : float<milli second> = 10.0
अब मैं दो कार्यों के साथ गणना की अनुमति चाहते हैं। इसलिए मैं
let milliSecondsPerSecond = 1000.0<(milli*second)/second>
let a = 10.0<second>;
let b = 10.0<milli*second>
(a*milliSecondsPerSecond) + b
जो मुझे देता है कि वास्तव में क्या मैं
val it : float<milli second> = 10010.0
अब चाहता था कर सकता है, यह सब अच्छा और चमकदार है, लेकिन जल्दी से हाथ से बढ़ता है जब आप कई इकाइयों और कई उपसर्गों का समर्थन करना चाहते हैं। इसलिए मुझे लगता है कि इसे अधिक सामान्य समाधान में सेंकना आवश्यक होगा, लेकिन यह नहीं पता कि कहां से शुरू करना है। मैं
let milliPer<'a> = 1000.0<(milli * 'a)/'a>
कोशिश की, लेकिन वह काम नहीं क्योंकि च # शिकायत करता है और मुझसे कहता है "गैर-शून्य स्थिरांक सामान्य इकाइयों नहीं हो सकता है" ...
के बाद से मुझे लगता है कि इकाई उपसर्गों एक आम समस्या है, मैं कल्पना करें कि किसी ने पहले इस समस्या को हल किया है। क्या एफ # में इकाई उपसर्ग करने के लिए एक और बेवकूफ तरीका है?
केवल डेटा संग्रहण प्रकारों (उदा। केबी, एमबी, जीबी) कुछ संदर्भों में इन आधारों के आधार पर बेस -10 का उपयोग करते हैं, और अन्य संदर्भों में वे बेस -2 का उपयोग करते हैं, इसलिए रूपांतरण कारक 1000 की बजाय 1024 है। –