Commit fd80c102 authored by Bruce Momjian's avatar Bruce Momjian

There are errors in the PGmoney class in the conversion routines over

the handling of negative numbers and commas. The attached path attempts
to fix these.
However the getValue method does not yet insert commas into the
generated string.
Also in getValue there is an incorrect assumption that the currency
symbol is '$', it should of course be '£'!. I have no idea on how to go
about fixing this one.

Alvin
parent 817a3e6d
......@@ -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;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment