Java 小数点后两位的浮点值

Java 小数点后两位的浮点值,java,android,android-activity,Java,Android,Android Activity,在Android中,输入EditText的值使用以下代码行转换为float Float addPurchUnitCostPrice = Float.valueOf(addPurchaseCostPrice.getText().toString()); 我希望将addPurchUnitCostPrice的值保留两位小数(始终)。如何做到这一点?浮点值没有小数点。它们有二元位置,两者是不可通约的。如果您想要小数位数,则必须使用十进制基数,即BigDecimal.您最好在Androi

在Android中,输入EditText的值使用以下代码行转换为float

        Float addPurchUnitCostPrice = Float.valueOf(addPurchaseCostPrice.getText().toString());

我希望将
addPurchUnitCostPrice
的值保留两位小数(始终)。如何做到这一点?

浮点值没有小数点。它们有二元位置,两者是不可通约的。如果您想要小数位数,则必须使用十进制基数,即
BigDecimal.

您最好在Android中使用,但它需要双精度。货币格式化程序还将处理使用逗号代替小数点的国家

所以把你的代码改成

double addPurchUnitCostPrice = Double.parseDouble(addPurchaseCostPrice.getText().toString());
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
String formattedPrice = currencyFormat.format(price);

您将根据用户设备定义的国家/地区创建带2位小数的价格和格式。

您可以使用BigDecimal,因为

Float不能以这种方式工作。您可以格式化它,但不能限制(或修改)数据类型的精度。请尝试使用BigDecimalI将格式从float更改为double,并使用
DecimalFormat df=new DecimalFormat(“0.00”)。按预期工作。十进制值被限制为小数点后2位。此外,整数值将替换为小数点处的两个零。但是,探索货币格式化程序和大十进制。谢谢大家的建议