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
This commit is contained in:
parent
817a3e6d39
commit
fd80c102fa
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user