diff --git a/modules/Vtiger/uitypes/Percentage.php b/modules/Vtiger/uitypes/Percentage.php
index 4477d8b916559747370554932f3eb382ae0fcc04..50185b6d043ac7b7bd2cd2646afe83f1115549db 100644
--- a/modules/Vtiger/uitypes/Percentage.php
+++ b/modules/Vtiger/uitypes/Percentage.php
@@ -19,12 +19,34 @@ class Vtiger_Percentage_UIType extends Vtiger_Base_UIType {
 	}
 
 	public function getDisplayValue($value, $record = false, $recordInstance = false) {
-		$fldvalue = str_replace(",", ".", $value);
-		$value = (is_numeric($fldvalue)) ? $fldvalue : null;
-		return CurrencyField::convertToUserFormat($value, null, true);
-	}
+       
+        $fldvalue = str_replace(",", ".", $value);
+        $value = (is_numeric($fldvalue)) ? $fldvalue : null;
+		$self = new self();
+                return $self->convertToUserFormat($value, null, true);
+    }
 
-	public function getEditViewDisplayValue($value) {
-		return $this->getDisplayValue($value);
-	}
+    public function convertToUserFormat($value, $user = null, $skipConversion = false, $skipFormatting = false) {
+           
+        if (empty($value)) {
+            return $value;
+        }
+
+        if (empty($user)) {
+            $user = Users_Record_Model::getCurrentUserModel();
+             
+        }
+
+        $old_no_of_currency_decimals = $user->no_of_currency_decimals;
+       
+        // If decimal separator is "," and no.of decimals is "0" then if we give 8,8 (value:8.8) 
+        // which is becoming round of value i,e "9". 
+        // so by default we are setting no_of_currency_decimals to max value.
+        $user->no_of_currency_decimals = 5;
+
+        $currencyField = new CurrencyField($value);
+        $display_value = $currencyField->getDisplayValue($user, $skipConversion, $skipFormatting);
+        $user->no_of_currency_decimals = $old_no_of_currency_decimals;
+        return $display_value;
+    }
 }