You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2015/05/15 05:06:17 UTC

[05/50] [abbrv] incubator-kylin git commit: KYLIN-748 restoreDecimalPoint revisited

KYLIN-748 restoreDecimalPoint revisited


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/6533a33c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/6533a33c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/6533a33c

Branch: refs/heads/streaming-localdict
Commit: 6533a33c81342457d41ff81ebd46a03f1dc1c358
Parents: 0ab0166
Author: honma <ho...@ebay.com>
Authored: Tue May 5 13:35:30 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue May 5 13:35:30 2015 +0800

----------------------------------------------------------------------
 .../kylin/metadata/measure/fixedlen/FixedPointLongCodec.java  | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6533a33c/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
index a0409b5..5218101 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
@@ -70,15 +70,12 @@ public class FixedPointLongCodec extends FixedLenMeasureCodec<LongWritable> {
     }
 
     String restoreDecimalPoint(long value) {
-        String valueStr = Long.toString(value);
-        if (scale < 0 || scale >= valueStr.length()) {
+        if (scale < 0) {
             throw new RuntimeException("Bad scale: " + scale + " with value: " + value);
         } else if (scale == 0) {
             return Long.toString(value);
         } else {
-            StringBuilder sb = new StringBuilder(valueStr);
-            sb.insert(valueStr.length() - scale, '.');
-            return sb.toString();
+            return String.format("%." + scale + "f", value / (Math.pow(10, scale)));
         }
     }