Ken*_*and 4 java eclipse android rounding java-6
我想在我的DecimalFormat上将舍入模式设置为HALF_UP,但是eclipse告诉我在DecimalFormat类上没有setRoundingMode().我的项目属性(以及整个Eclipse属性)使用的是1.6编译器.developer.android.com网站说我可以使用Java 5或6,所以我不确定问题是什么.
import java.math.RoundingMode;
import java.text.DecimalFormat;
completedValueFormatter = NumberFormat.getNumberInstance();
DecimalFormat completedDecimalFormat = (DecimalFormat)completedValueFormatter;
completedDecimalFormat.setRoundingMode(RoundingMode.HALF_UP);
我也尝试使用android工具生成一个基于ant的项目,在项目中尝试了这个代码,并得到了相同的编译错误.所以它似乎与Eclipse无关.它似乎与Android API有关.
有什么建议?
这并没有真正回答为什么我不能在DecimalFormat中使用Java 6 .setRoundingMode(RoundingMode)方法,但它至少是一种解决方法.
int numDigitsToShow = this.completedValueFormatter.getMaximumFractionDigits();
BigDecimal bigDecimal = new BigDecimal(valueToBeRounded);
BigDecimal roundedBigDecimal = bigDecimal.setScale(numDigitsToShow, RoundingMode.HALF_UP);
return this.completedValueFormatter.format(roundedBigDecimal.doubleValue());Run Code Online (Sandbox Code Playgroud)
我用我需要舍入的值创建一个BigDecimal,然后我得到一个该值的BigDecimal,并将比例设置为我需要将我的值舍入到的数字位数.然后我将该舍入值传递给我原来的NumberFormat以转换为String.
如果有人有更好的解决方案,我全都耳朵!
| 归档时间: |
|
| 查看次数: |
7754 次 |
| 最近记录: |