aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/jdbc/postgresql/util/PGmoney.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/interfaces/jdbc/postgresql/util/PGmoney.java b/src/interfaces/jdbc/postgresql/util/PGmoney.java
index 7d9ebf995a4..c2dcb3fad77 100644
--- a/src/interfaces/jdbc/postgresql/util/PGmoney.java
+++ b/src/interfaces/jdbc/postgresql/util/PGmoney.java
@@ -48,7 +48,22 @@ public class PGmoney extends PGobject implements Serializable,Cloneable
public void setValue(String s) throws SQLException
{
try {
- val = Double.valueOf(s.substring(1)).doubleValue();
+ String s1;
+ boolean negative;
+
+ negative = (s.charAt(0) == '-') ;
+
+ s1 = s.substring(negative ? 2 : 1);
+
+ int pos = s1.indexOf(',');
+ while (pos != -1) {
+ s1 = s1.substring(0,pos) + s1.substring(pos +1);
+ pos = s1.indexOf(',');
+ }
+
+ val = Double.valueOf(s1).doubleValue();
+ val = negative ? -val : val;
+
} catch(NumberFormatException e) {
throw new SQLException("conversion of money failed - "+e.toString());
}
@@ -80,6 +95,11 @@ public class PGmoney extends PGobject implements Serializable,Cloneable
*/
public String getValue()
{
- return "$"+val;
+ if (val < 0) {
+ return "-$" + (-val);
+ }
+ else {
+ return "$"+val;
+ }
}
}