2012-01-21 21 views
7

लुआ में, मैं कैसे बता सकता हूं कि कोई संख्या समान रूप से किसी अन्य संख्या में विभाजित होती है? i.e कोई शेष के साथ? मैं सिर्फ एक बूलियन सच या झूठ की तलाश में हूं।लुआ में, मैं कैसे बता सकता हूं कि कोई संख्या समान रूप से किसी अन्य संख्या में विभाजित होती है?

12/6 = 2 (true) 
18/6 = 3 (true) 
20/6 = 3.(3) (false) 

उत्तर

16

शून्य करने के लिए विभाजन के शेष की तुलना करें, इस तरह:

12 % 6 == 0 

18 % 6 == 0 

20 % 6 ~= 0 

मापांक ऑपरेटर (%) विभाजन के शेष देता है। 12 और 6 के लिए यह 0 है, लेकिन 20 और 6 के लिए वह 2.

सूत्र इसे इस्तेमाल करता है: a % b == a - math.floor(a/b)*b

+2

% के बारे में अच्छी बात यह है कि यह वास्तविक संख्या के साथ-साथ – etandel

0

मापांक ऑपरेटर का उपयोग के साथ समस्या यह है, यह सही ढंग से ऋणात्मक संख्याओं पर काम नहीं करता है । आप नकारात्मक संख्याओं का उपयोग करने जा रहे हैं, तो math.fmod बजाय का उपयोग करें:

[email protected] ~ $ lua 
> return -13%6 
5 
> return 13%6 
1 
> return math.fmod (-13, 6) 
-1 
> return math.fmod (13, 6) 
1 
> 
+0

0 तुलना के लिए काम करता है, मापांक ऑपरेटर ठीक काम करने के लिए प्रकट होता है। अतिरिक्त फ़ंक्शन कॉल करने की आवश्यकता नहीं है। – BMitch

+0

असल में यह एक अच्छा मुद्दा है। –

+1

चाहे '-13% 6 == 5' राय का विषय गलत है। यह अक्सर वह व्यवहार होता है जिसे आप चाहते हैं। – Eric