ऐसा प्रतीत होता है जैसे AngularJS का angular.isNumber
काम नहीं कर रहा है। यह तारों के साथ काम नहीं करता है जो संख्याएं हैं। क्या मुझसे कुछ गलत हो रही है? क्या मुझे बस isNaN()
का उपयोग करना चाहिए?angular.isNumber() अपेक्षित के रूप में क्यों काम नहीं कर रहा है?
angular.isNumber('95.55') == false
angular.isNumber('95.55' * 1) == true
angular.isNumber('bla' * 1) == true
angular.isNumber(NaN) == true
मैं कुछ की जरूरत है एक स्ट्रिंग एक नंबर है (जब यह वास्तव में है) और angular.isNumber()
मुझे है कि जब तक मैं 1 से गुणा करते हैं नहीं होगा देखने के लिए, लेकिन अगर मैं ऐसा तो यह हमेशा सच हो जाएगा । NaN
एक संख्या नहीं है (परिभाषा के अनुसार) और इसलिए झूठी वापसी करनी चाहिए।
http://stackoverflow.com/questions/2801601/why-does-typeof-nan-return-number – RonSper
क्या काम नहीं करता है? '95 .55 'एक संख्या नहीं है, यह एक स्ट्रिंग है। इसी प्रकार, किसी संख्या से स्ट्रिंग को गुणा करने से, जावास्क्रिप्ट उस स्ट्रिंग को एक संख्या के रूप में पार्स/कास्ट करेगा और ऑपरेशन करने का प्रयास करेगा। Concatenation अलग-अलग काम करता है, क्योंकि संख्या + स्ट्रिंग एक स्ट्रिंग होगी (जावास्क्रिप्ट संख्या को स्ट्रिंग के रूप में रखता है)। –
@BradM मैंने समस्या को स्पष्ट करने में मदद के लिए मेरे प्रश्न में जोड़ा। –