जब जावास्क्रिप्ट या किसी अन्य प्रोग्रामिंग भाषा में संख्याओं के साथ काम करते हैं, तो n
अंकों के बाद एक संख्या को छोटा करने का एक तरीका है । दुर्भाग्य से, सास में ऐसा कोई कार्य नहीं है। फिर भी, उदाहरण के लिए प्रतिशत आधारित ग्रिड सिस्टम के साथ काम करते समय गोलाई और सटीक मुद्दे होते हैं।
यहाँ एक सास का कार्यान्वयन है toFixed()
:
/// toFixed() function in Sass /// @author Hugo Giraudel /// @param (Number) $float - Number to format /// @param (Number) $digits (2) - Number of digits to leave /// @return (Number) @function to-fixed($float, $digits: 2) ( $sass-precision: 5; @if $digits > $sass-precision ( @warn "Sass sets default precision to #($sass-precision) digits, and there is no way to change that for now." + "The returned number will have #($sass-precision) digits, even if you asked for `#($digits)`." + "See https://github.com/sass/sass/issues/1122 for further informations."; ) $pow: pow(10, $digits); @return round($float * $pow) / $pow; )
ध्यान दें कि Sass में 5 अंकों की डिफ़ॉल्ट सटीकता है, और आज के अनुसार इसे कॉन्फ़िगर करने का कोई तरीका नहीं है। इस वजह से, Sass के लिए 5 से अधिक अंकों के साथ एक संख्या की गणना करना संभव नहीं है, कोई फर्क नहीं पड़ता कि फ़ंक्शन को दी गई संख्या $digits
।
साथ ही, इस फ़ंक्शन के लिए एक फ़ंक्शन की आवश्यकता होती pow
है जो Sass (अभी तक) के साथ मूल नहीं आता है। यह कम्पास में मौजूद है, लेकिन यदि आप कम्पास या किसी अन्य पुस्तकालय का उपयोग नहीं करते हैं जो इसे प्रदान करता है, तो आपको अपने स्वयं के pow
फ़ंक्शन की आवश्यकता हो सकती है । सौभाग्य से, इसे लागू करना काफी आसान है:
/// Power function /// @param (Number) $x /// @param (Number) $n /// @return (Number) @function pow($x, $n) ( $ret: 1; @if $n >= 0 ( @for $i from 1 through $n ( $ret: $ret * $x; ) ) @else ( @for $i from $n to 0 ( $ret: $ret / $x; ) ) @return $ret; )