2011-10-06 13 views
7

क्या सैस दशमलव स्थानों को संभालने के तरीके को संशोधित करने का कोई तरीका है? मैंने कुछ लोगों को यह कहते हुए देखा कि सास उत्तरदायी लेआउट के लिए आवश्यक (लक्ष्य/अभिभावक) * 100 गणना गतिशील रूप से करेगा, और संकलन समय पर परिणाम आउटपुट करेगा। इसमें एक प्रतिशत कार्य भी है, जो अनिवार्य रूप से दो मान लेगा और ऐसा करेगा।संख्याओं को नीचे और गोल करना। क्या यह कॉन्फ़िगर किया जा सकता है?

अलास, सैस केवल मुझे केवल 3 दशमलव स्थान देगा। इस बिंदु तक मेरी समझ यह रही है कि कुछ मामलों में, यह किसी भी हिचकी के बिना लेआउट को उचित रूप से प्रदर्शित करने के लिए सभी ब्राउज़रों के लिए पर्याप्त सटीकता नहीं हो सकता है।

क्या कोई मुझे इस के निचले हिस्से तक पहुंचने में मदद कर सकता है?

संपादित

हल। किसी और को दिलचस्पी है, मैं सास के नंबर.आरबी में जो चाहता था उसे पूरा करने में कामयाब रहा, @precision के मूल्य को बदल रहा था। यह सभी फ्लोट आउटपुट के तरीके को बदल देता है।

उत्तर

4

इसे कमांडलाइन में --precision का उपयोग करके कॉन्फ़िगर किया जा सकता है, SASS Changelog, version 3.1.8 देखें।

भी जोड़ना चाहिए कि अगर आप सीधे numbers.rb में @precision संपादित करना चाहते हैं, तो आप numbers.rb पा सकते हैं (कम से कम OS X पर), यहाँ:

/usr/lib/ruby/user-gems/1.8/gems/sass-3.1.10/lib/sass/script 

1,8 और 3.1.10 पाठ्यक्रम के साथ प्रतिस्थापित किया जाना चाहिए आपका (अधिमानतः नवीनतम) संस्करण संख्याएं।

+0

आप इस काम करने के लिए पाने में कामयाब रहे है? जब मैं "sass --precision 6" कोशिश करता हूं कुछ भी नहीं होता है। – Jon

+0

@ जोन वाक्यविन्यास थोड़ा अलग है: '--precision = 6' ... तो आपको' '' की आवश्यकता है – conceptdeluxe

14

आप कम्पास का उपयोग कर रहे हैं, तो आप आसानी से अपने प्रोजेक्ट फ़ाइल (config.rb) में परिशुद्धता कोर हैकिंग के बिना निर्दिष्ट कर सकते हैं:

Sass::Script::Number.precision = 8 

अधिक जानकारी के लिए Sass documentation

0

सबसे पहले करने के लिए your default precision सेट को देखने के आपकी परियोजना में सबसे ज्यादा सटीकता की आवश्यकता होगी।

फिर, अलग-अलग गुणों के स्तर पर दशमलव की संख्या को कस्टमाइज़ करने के लिए नीचे दिए गए फ़ंक्शन का उपयोग करें (जो this function by Takeru Suzuki पर आधारित है)।

कोड:

@function decimal-round ($number, $digits: 0, $mode: round) { 
    $n: 1; 
    // $number must be a number 
    @if type-of($number) != number { 
     @warn '#{ $number } is not a number.'; 
     @return $number; 
    } 
    // $digits must be a unitless number 
    @if type-of($digits) != number { 
     @warn '#{ $digits } is not a number.'; 
     @return $number; 
    } @else if not unitless($digits) { 
     @warn '#{ $digits } has a unit.'; 
     @return $number; 
    } 
    @if $digits > 0 { 
     @for $i from 1 through $digits { 
      $n: $n * 10; 
     } 
    } 
    @if $mode == round { 
     @return round($number * $n)/$n; 
    } @else if $mode == ceil { 
     @return ceil($number * $n)/$n; 
    } @else if $mode == floor { 
     @return floor($number * $n)/$n; 
    } @else { 
     @warn '#{ $mode } is undefined keyword.'; 
     @return $number; 
    } 
} 

आउटपुट:

decimal-round(0.333) => 0 
decimal-round(0.333, 1) => 0.3 
decimal-round(0.333, 2) => 0.33 
decimal-round(0.666) => 1 
decimal-round(0.666, 1) => 0.7 
decimal-round(0.666, 2) => 0.67 
संबंधित मुद्दे