私の GWT Web アプリケーションには、価格を保持するテキスト ボックスがあります。その文字列を BigDecimal に変換するにはどうすればよいですか?
質問する
3454 次
2 に答える
9
最も簡単な方法は、ValueBox を継承する新しいテキスト ボックス ウィジェットを作成することです。このようにすると、文字列値を手動で変換する必要がなくなります。ValueBox がすべて処理します。
入力された BigDecimal 値を取得するには、次のようにします。
BigDecimal value = myTextBox.getValue();
あなたのBigDecimalBox.java :
public class BigDecimalBox extends ValueBox<BigDecimal> {
public BigDecimalBox() {
super(Document.get().createTextInputElement(), BigDecimalRenderer.instance(),
BigDecimalParser.instance());
}
}
次に、BigDecimalRenderer.java
public class BigDecimalRenderer extends AbstractRenderer<BigDecimal> {
private static BigDecimalRenderer INSTANCE;
public static Renderer<BigDecimal> instance() {
if (INSTANCE == null) {
INSTANCE = new BigDecimalRenderer();
}
return INSTANCE;
}
protected BigDecimalRenderer() {
}
public String render(BigDecimal object) {
if (null == object) {
return "";
}
return NumberFormat.getDecimalFormat().format(object);
}
}
そしてあなたのBigDecimalParser.java
package com.google.gwt.text.client;
import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.text.shared.Parser;
import java.text.ParseException;
public class BigDecimalParser implements Parser<BigDecimal> {
private static BigDecimalParser INSTANCE;
public static Parser<BigDecimal> instance() {
if (INSTANCE == null) {
INSTANCE = new BigDecimalParser();
}
return INSTANCE;
}
protected BigDecimalParser() {
}
public BigDecimal parse(CharSequence object) throws ParseException {
if ("".equals(object.toString())) {
return null;
}
try {
return new BigDecimal(object.toString());
} catch (NumberFormatException e) {
throw new ParseException(e.getMessage(), 0);
}
}
}
于 2012-05-03T04:18:13.427 に答える
1
GWT-Mathを見てください。
于 2012-05-02T12:27:01.303 に答える