我有一些字符串值需要转换为浮点数,同时保留两位小数。我正在使用GWT,所以我尝试的所有示例在GWT 2.7中都不起作用
String value = "00.00";
String value2 = "-34.90";
String value3 = "3.45";
如何在GWT中将字符串转换为带小数点后两位的浮点数?
答案 0 :(得分:1)
GWT是一个框架,您不需要在GWT中而是在Java中将字符串“转换”为浮点数。
正如评论中已经提到的,您不能要求在 float 或 double 中使用特定的精度。您也不能相信他们的String
表示是他们的实际价值……
如果确实只需要两个小数来表示一个数字,则建议您使用int
来获取数值乘以100,然后在需要的任何地方执行简单的算术运算。您可以将其包装在Number
类中:
class TwoDecimal extends Number {
protected int val;
public TwoDecimal(double val) {
this.val = (int)Math.round(100 * val);
}
@Override
public double toDouble() {
return val / 100.0;
}
// Implement other abstract toXXX() methods
@Override
public String toString() {
return (val / 100) + "." + (val % 100);
}
}
还请记住,int
可能无法存储double
所涵盖的范围,因此您应根据使用情况对其进行调整。