द्वारा गुणा गुणा करें शायद एक मूर्ख सवाल है, लेकिन मैं अभी एफ # के साथ शुरू कर दिया है और मुझे थोड़ा समस्या है।एफ # - फ्लोट
let multiplyByTwo x = x * 2
जब मैं इस तरह इस फोन:
let result = multiplyByTwo 5
सब कुछ ठीक है, परिणाम 10
है जब मैं इसे कहते
मैं इस तरह एक समारोह है कहो इस तरह:
let result = multiplyByTwo 2.5
मुझे परिणामस्वरूप 5 या 5.0 प्राप्त होने की उम्मीद है। वास्तविक परिणाम हालांकि यह है:
परिणाम = multiplyByTwo 2.5 ;;
--------------------------------- ^^^stdin (4,28): त्रुटि FS0001: यह अभिव्यक्ति प्रकार
int
की उम्मीद नहीं थी, लेकिन यहाँ टाइप
float
क्योंकि मैं इस समारोह को कुछ हद तक सामान्य होना चाहते हैं (यानी दोनों चल बिन्दु संख्या और पूर्णांकों स्वीकार करते हैं) है, मैं यह पसंद नहीं है। मेरा सवाल है: कोई इसे कैसे हल करता है?
मुझे एफ # इसलिए टिप्पणी के बारे में बहुत कुछ पता नहीं है, लेकिन मुझे लगता है कि आपके फ़ंक्शन में '2' को एक इंट के रूप में माना जा रहा है और एक्स को एक इंट भी होने की उम्मीद है, क्या कोई तरीका है जिसे आप कास्ट कर सकते हैं? – RedEyedMonster
'फ्लोट' और 'int' की 'असंगतता' वास्तव में मुझे बी # के साथ शुरू होने पर वास्तव में बग करने के लिए प्रयोग की जाती थी, लेकिन कुछ सालों बाद, मैं धीरे-धीरे विभिन्न प्रकार के रूप में विचार करने की उपयोगिता के लिए आ गया हूं। अक्सर यह मुझे खुद से पूछने के लिए मजबूर करता है कि मैं वास्तव में क्या चाहता हूं *। – Benjol
मेरा मानना है कि यह एक भाषा दोष है और मेरा कामकाज सब कुछ के लिए फ्लोट का उपयोग करना था जब मैं वास्तविक संख्याओं से निपटना चाहता हूं और प्रदर्शन या सटीकता की परवाह नहीं करता हूं। –