दिलचस्प पोस्ट
लिनक्स कमांड लाइन का उपयोग करते हुए एचटीएमएल ईमेल कैसे भेजें OpenCV में आरजीबी को ब्लैक एंड व्हाइट में कनवर्ट करें टंकिनर पाठ विजेट में टेक्स्ट को कैसे उजागर करें एक प्रतीकात्मक लिंक और एक कठिन लिंक के बीच क्या अंतर है? विभिन्न मेटाडेटा जानकारी रखने के लिए डेटाबेस को डिज़ाइन करना कैसे अंग्रेजी भाषा शब्द डेटाबेस पाने के लिए? jquery – क्लिक करें घटना गतिशील बनाया बटन के लिए काम नहीं कर रहा है गैलरी से या कैमरे से चित्र लेने के लिए डायलॉग कैसे एक विधि संदर्भ विधेयक को नकारना फ्लेक्स कन्टेनर न्यूनतम-ऊंचाई IE में अनदेखी की गई असुरक्षित प्लेफ़ॉर्म चेतावनी: एक सच्चे SSLContext वस्तु उपलब्ध नहीं है। यह urllib3 उचित रूप से SSL विन्यस्त करने से रोकता है पी का उपयोग कैसे करें: पीढ़ी के भीतर स्ट्रीमिंग कंटेंट के साथ ग्राफिक इमेज: डेटाटेबल? किसी एक कड़ी में WHERE 1 = 1 और <conditions> का उपयोग क्यों करेगा? Angular2 में सामान्य मेल सत्यापनकर्ता मैं CG_CONTEXT_SHOW_BACKTRACE पर्यावरण चर को कैसे सेट कर सकता हूं?

PHP में पीछे वाले शून्य को कैसे पट्टी करना

नमस्ते क्या कोई मुझे एक स्पष्टीकरण (और शायद एक उदाहरण) बताता है कि मैं पीएचपी का इस्तेमाल करते हुए एक संख्या से अनुक्रमित शून्य को कैसे निकालूं?

उदाहरण के लिए:

"Lat":"37.422005000000000000000000000000","Lon":"-122.84095000000000000000000000000" 

इसमें बदल दिया जाएगा:

 "Lat":"37.422005","Lon":"-122.84095" 

मैं शून्य को पठनीय बनाने की कोशिश कर रहा हूं। मैंने str_replace() का उपयोग करने की कोशिश की लेकिन इसने शून्य के अंदर शून्य (डोह) को भी बदल दिया।

धन्यवाद = डी

वेब के समाधान से एकत्रित समाधान "PHP में पीछे वाले शून्य को कैसे पट्टी करना"

सभी rtrims भूल जाओ, और नियमित अभिव्यक्ति, निर्देशांक floats हैं और floats के रूप में इलाज किया जाना चाहिए, बस (float) साथ चर एक स्ट्रिंग से एक फ्लोट करने के लिए डालने के लिए:

 $string = "37.422005000000000000000000000000"; echo (float)$string; 

उत्पादन:

 37.422005 

आपके वास्तविक परिणाम फ़्लोट्स हैं लेकिन आपको HTTP प्रोटोकॉल के कारण स्ट्रिंग के रूप में पारित किया जाता है, गणना करना आदि करने के लिए उन्हें अपने प्राकृतिक रूप में वापस करना अच्छा है।

टेस्ट केस: http://codepad.org/TVb2Xyy3

नोट : PHP में फ्लोटिंग प्वाइंट सटीक के बारे में टिप्पणी के बारे में, यह देखें: https://stackoverflow.com/a/3726761/353790

Rtrim के साथ प्रयास करें:

 $number = rtrim($number, "0"); 

यदि आपके पास 0 के (जैसे 123.000) में एक दशमलव संख्या समाप्त हो रही है, तो आप दशमलव विभाजक को हटाना भी चाहते हैं, जो प्रयोग किए गए लोकेल के आधार पर भिन्न हो सकते हैं। इसे विश्वसनीय तरीके से हटाने के लिए, आप निम्न कार्य कर सकते हैं:

 $number = rtrim($number, "0"); $locale_info = localeconv(); $number = rtrim($number, $locale_info['decimal_point']); 

यह निश्चित रूप से एक बुलेट-प्रूफ समाधान नहीं है, और सबसे अच्छा एक नहीं हो सकता है। यदि आपके पास 12300.00 जैसी संख्या है, तो यह अनुक्रमांक 0 के पूर्णांक भाग से नहीं हटाएगा, लेकिन आप इसे अपने विशिष्ट ज़रूरत के अनुसार अनुकूलित कर सकते हैं।

यदि आप ट्रिमिंग या अन्य स्ट्रिंग जोड़तोड़ की कोशिश करते हैं तो आप बहुत परेशानियों में चले जाएंगे इस तरह से कोशिश करो

 $string = "37.422005000000000000000000000000"; echo $string + 0; 

आउटपुट:

 37.422005 

आप floatval(val); का भी उपयोग कर सकते हैं floatval(val);

  <?php echo floatval( "37.422005000000000000000000000000" ); ?> 

का परिणाम

37.422005

मुझे पता है कि इस प्रश्न को 2012 में पूछा गया था, लेकिन, मैं सिर्फ इस सरल समाधान में आया हूं …

 $result = $num + 0; 

तो इस प्रश्न के लिए यह होगा:

 $lat = 37.422005000000000000000000000000 + 0; //37.422005 $lon = -122.84095000000000000000000000000 + 0; //-122.84095 

यदि आप अतिरिक्त शून्य को अंत से दूर करना चाहते हैं, लेकिन केवल एक निश्चित दशमलव स्थान पर, यह सिर्फ ऐसा करने के लिए एक उपयोगी अभिव्यक्ति है (उदाहरण के लिए 0.30000 0.30 और 0.0003000 दिखाएगा 0.0003 दिखाएगा)।

 preg_replace("/(?<=\\.[0-9]{2})[0]+\$/","",$number); 

बेशक {2} दशमलव स्थान सीमा को नियंत्रित करता है

मेरे मामले में, मैंने निम्नलिखित किया, अन्य जवाब यहां दिए:

 rtrim((strpos($number,".") !== false ? rtrim($number, "0") : $number),"."); 

चूंकि पूरी संख्या दिखाया जा रहा था क्योंकि मुझे दशमलव को निकालना पड़ा

एक उदाहरण के रूप में, यह निम्नलिखित संख्या दिखाएगा

 2.00, 1.00, 28.50, 16.25 

जैसा

 2, 1, 28.5, 16.25 

बजाय

 2., 1., 28.5, 16.25 

कौन सा, मेरे लिए, उन्हें सही ढंग से नहीं दिखा रहा है

नवीनतम संपादन में "100" जैसे नंबर को आरटीआरएम'एड से 1 तक बंद कर दिया जाता है, यदि दशमलव का सामना करना पड़ता है तो केवल दाएं कोर्इटी का ट्रिम कर दिया जाता है।

त्रिज्या शून्य, लेकिन केवल दशमलव स्थान के बाद – उदाहरण के लिए, हम 100 -> 1 को परिवर्तित नहीं करना चाहते। यह केवल अवधि को पट्टी करेगा यदि केवल शून्य का पालन करें।

 function trim_zeros($str) { if(!is_string($str)) return $str; return preg_replace(array('`\.0+$`','`(\.\d+?)0+$`'),array('','$1'),$str); } 

इन समाधानों में से अधिकांश संख्याओं में महत्वपूर्ण अंक ट्रिम करेंगे जैसे "100" (कोई पिछला दशमलव नहीं) यहां एक सरल समाधान है जिसकी समस्या नहीं है:

 function TrimTrailingZeroes($nbr) { if(strpos($nbr,'.')!==false) $nbr = rtrim($nbr,'0'); return rtrim($nbr,'.'); } 

आपको राउंड फ़ंक्शन का उपयोग करना चाहिए जो कि replace तुलना में संख्याओं में हेरफेर करने में अधिक सक्षम है।

हां दिलचस्प। मैंने इसका इस्तेमाल किया है:

 // remove leading zeros $output = ltrim ($output, "0"); // remove trailing 0s. $temp=explode(".",$output); $temp[1]=rtrim($temp[1],"0"); $output = $temp[0]; if (!empty($temp[1])) $output.='.'.$temp[1]; return $output; 

यह पहली दशमलव बिंदु के बाद नंबर से पीछे 0s निकाल देता है अन्यथा 100 की तरह एक संख्या 1 हो जाएगी।

चूंकि मैं एक तुलना कर रहा था, फ्लोट तकनीक का उपयोग करने से समस्याओं का कारण हुआ। उम्मीद है की यह मदद करेगा?

ओकोनोमियाकी 3000 के उत्तर के बजाय आप जोड़कर 1 की तरह गुणा कर सकते हैं

 $string = "37.422005000000000000000000000000"; echo $string*1;die; // outputs - 37.422005 

आप rtrim () ( http://www.php.net/manual/en/function.rtrim.php ) का उपयोग कर सकते हैं:

 rtrim( "37.422005000000000000000000000000" , "0" ) 

बस सुनिश्चित कर लें कि दशमलव बिंदु होगा

मेरे लिए, मुझे घातीय मूल्यों और सरल संख्याओं जैसे कि 10000 से अंतिम गैर-शून्य महत्वपूर्ण अंकों में कनवर्ट करने के लिए एक और समाधान की आवश्यकता है

 /* Convert any value to the least significant value */ function toDecimal($val) { // Convert any exponential sign to proper decimals $val = sprintf("%lf", $val); if (strpos($val, '.') !== false) { $val = rtrim(rtrim($val, '0'), '.'); } return $val; } // Test cases echo toDecimal(1000.000) . "\n"; echo toDecimal(1E-5) . "\n"; echo toDecimal(1E+5) . "\n"; echo toDecimal(1234.56) . "\n"; echo toDecimal(1234.5700) . "\n"; echo toDecimal(1234000) . "\n"; echo toDecimal(-1e10) . "\n"; // Results 1000 0.00001 100000 1234.56 1234.57 1234000 -10000000000 

preg_replace चाल करेगा:

 $lat=preg_replace('/0+$/','',$lat);