rolloMedlem sedan aug. 2001203 inlägg Hej igen!
Jag har problem med resultatet från min förra postning, ang konvertera sträng till numeriskt värde.
double num3 = 0;
try {
num3 = Double.parseDouble(item.getNetValue());
} catch(NumberFormatException e) {
/* Inte bara siffror i strängen */
out.println("fel");
}
double num4 = 1.17;
num4 = num4 * num3;
out.println(num4);
funkar alldeles utmärkt så länge värdet är under 100, för sedan sätter systemet ett kommatecken i värdet, dvs 1,000.00 (1000) och då funkar inte denna fina kodsnutt.
Felet är alltså kommatecknet som smyger in, men hur tusan får jag bort kommatecknet?
Min tanke var att klippa de sista 3 tecknen, men de hjälper inte, för jag har testat att ha ett statiskt värde med komma resp. punkt och allt är frid och fröjd så länge jag inte har komma i värdet.
Tack på förhand!
rollo
rolloMedlem sedan aug. 2001203 inlägg sök o i skolen finna!
Allt finns på nätet, även detta!
String input = header.getNetValue();
String output = input.replaceAll(",", "");
sedan kör jag
double num3 = 0;
try {
num3 = Double.parseDouble(item.getNetValue());
} catch(NumberFormatException e) {
/* Inte bara siffror i strängen */
out.println("fel");
}
double num4 = 1.17;
num4 = num4 * num3;
out.println(num4);
LimeMedlem sedan sep. 2001961 inlägg Ett annat sätt är att använda sig av NumberFormat och hämta ut det nummerformat/valutaformat som texten/valutan kommer i.
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Currency;
import java.util.Locale;
public class Demo {
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
parseCurrency("1000");
parseCurrency("112.011");
parseCurrency("1,000.11");
}
private static void parseCurrency(String currencyString) {
NumberFormat currency = NumberFormat.getInstance(Locale.ENGLISH);
System.out.println("Converting " + currencyString);
try {
Number n = currency.parse(currencyString);
if (n instanceof Long) {
Long l = (Long) n;
System.out.println("Found a long with value " + l);
} else {
Double d = (Double) n;
System.out.println("Found a double with value " + d);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Det ska även gå att använda sig currency instanserna på något sätt men det hinner jag tyvärr inte titta på just nu.