From 9058ff95e25d67c4662fdc956fb612660dcba748 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Thu, 11 Feb 2010 12:37:21 +0000
Subject: [PATCH] LMS-1384 done

SVN: 14714
---
 .../application/renderer/RealNumberRenderer.java       | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/RealNumberRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/RealNumberRenderer.java
index 5b4ef076326..2a286d84695 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/RealNumberRenderer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/RealNumberRenderer.java
@@ -17,6 +17,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RealNumberFormatingPara
  */
 public final class RealNumberRenderer implements GridCellRenderer<BaseEntityModel<?>>
 {
+    private static final String EXPONENT_FORMAT = "E000";
     private static final String ZEROS = "00000000000000000000";
     private static final int MAX_PRECISION = ZEROS.length();
     
@@ -29,14 +30,19 @@ public final class RealNumberRenderer implements GridCellRenderer<BaseEntityMode
         }
         int precision = Math.max(0, Math.min(MAX_PRECISION, realNumberFormatingParameters.getPrecision()));
         String format = "0." + ZEROS.substring(0, precision);
-        if (realNumberFormatingParameters.isScientific())
+        boolean scientific = realNumberFormatingParameters.isScientific();
+        if (scientific)
         {
-            format += "E000";
+            format += EXPONENT_FORMAT;
         }
         try
         {
             double doubleValue = Double.parseDouble(value);
             String formattedValue = NumberFormat.getFormat(format).format(doubleValue);
+            if (scientific == false && doubleValue != 0 && Double.parseDouble(formattedValue) == 0)
+            {
+                formattedValue = NumberFormat.getFormat(format + EXPONENT_FORMAT).format(doubleValue);
+            }
             return MultilineHTML.wrapUpInDivWithTooltip(formattedValue, value);
         } catch (NumberFormatException ex)
         {
-- 
GitLab