diff --git a/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties b/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties
index baa8bff7e08e69e701bd1661bb4f358eae03be53..a7e659e4c3294d532d6b9a480c6015a8642239c7 100644
--- a/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties
+++ b/plugins/org.jkiss.dbeaver.core/OSGI-INF/l10n/bundle.properties
@@ -334,6 +334,8 @@ DateFormatter.number.general.maxFractDigits.label=Maximum fraction digits
DateFormatter.number.general.maxFractDigits.description=Maximum fraction digits
DateFormatter.number.general.minFractDigits.label=Minimum fraction digits
DateFormatter.number.general.minFractDigits.description=Minimum fraction digits
+DateFormatter.number.general.useTypeScale.label=Use data type scale for fraction digits
+DateFormatter.number.general.useTypeScale.description=Use column/attribute data type scale as minimum fraction digits number
DateFormatter.number.general.roundingMode.label=Rounding mode
DateFormatter.number.general.roundingMode.description=Rounding mode
diff --git a/plugins/org.jkiss.dbeaver.core/plugin.xml b/plugins/org.jkiss.dbeaver.core/plugin.xml
index 2805575690c8a8498330b6294bb028521299ff70..6b3183ef231cf5bcaece7bed8b539b828a34f2e9 100644
--- a/plugins/org.jkiss.dbeaver.core/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.core/plugin.xml
@@ -3356,6 +3356,7 @@
+
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java
index 5e2461334b7faa1c67e1ea2b8b3bf837cbf873c8..814d63e308a29105b3151241d5c771f0323fbb42 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberDataFormatter.java
@@ -71,7 +71,8 @@ public class NumberDataFormatter implements DBDDataFormatter {
// just skip it
}
}
- if (type != null) {
+ Object useTypeScale = CommonUtils.toString(properties.get(NumberFormatSample.PROP_USE_TYPE_SCALE));
+ if (type != null && CommonUtils.toBoolean(useTypeScale)) {
if (type.getScale() != null && type.getScale() > 0) {
int fractionDigits = type.getScale();
if (fractionDigits > MAX_DEFAULT_FRACTIONS_DIGITS) fractionDigits = MAX_DEFAULT_FRACTIONS_DIGITS;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java
index 0f1bb3bd811c6b787ea004a1012d440bf8fa15d6..7290f2065beadcf47f5c1f17f508b577e764f41e 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/formatters/NumberFormatSample.java
@@ -30,6 +30,7 @@ public class NumberFormatSample implements DBDDataFormatterSample {
public static final String PROP_MIN_INT_DIGITS ="minIntegerDigits";
public static final String PROP_MAX_FRACT_DIGITS ="maxFractionDigits";
public static final String PROP_MIN_FRACT_DIGITS ="minFractionDigits";
+ public static final String PROP_USE_TYPE_SCALE ="useTypeScale";
public static final String PROP_ROUNDING_MODE ="roundingMode";
@Override
@@ -42,6 +43,7 @@ public class NumberFormatSample implements DBDDataFormatterSample {
props.put(PROP_MIN_INT_DIGITS, tmp.getMinimumIntegerDigits());
props.put(PROP_MAX_FRACT_DIGITS, Math.max(tmp.getMaximumFractionDigits(), 10));
props.put(PROP_MIN_FRACT_DIGITS, tmp.getMinimumFractionDigits());
+ props.put(PROP_USE_TYPE_SCALE, true);
props.put(PROP_ROUNDING_MODE, tmp.getRoundingMode().name());
return props;
}