gpt4 book ai didi

java - 将字符串转换为大数浮点型

转载 作者:行者123 更新时间:2023-12-02 09:52:19 25 4
gpt4 key购买 nike

我使用 MPandroid 图表来膨胀饼图,并返回一些字符串 JSON

我尝试使用 float.parseFloat("3584907054456.48") 转换 String 值

但是当我记录它时它有指数值,比如 3584907E12

我需要获取浮点值3584907054456.48这可能吗?

List<String> dataStackedSalesVolume1;
List<String> dataStackedSalesVolume2;

float[] firstDataStacked = new float[counte];
float[] secondDataStacked = new float[counte];

int counte = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(1).getDataSalesVolume().size();
dataStackedSalesVolume1 = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(0).getDataSalesVolume();
dataStackedSalesVolume2 = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(1).getDataSalesVolume();

for (int i=0; i< counte; i++) {
firstDataStacked[i] = Float.parseFloat(dataStackedSalesVolume1.get(i));
secondDataStacked[i] = Float.parseFloat(dataStackedSalesVolume2.get(i));
}

我尝试获取字符串并将其放入新列表中,然后解析该列表并将解析后的值放入 float[]

但如果结果是四舍五入的,我需要获取数据的完整长度而不进行四舍五入

最佳答案

编辑 - BigDecimal 值可以使用 floatValue() 方法转换为浮点值。 (示例 - float requiredValue = bigDecimalValue.floatValue();)

但请注意,这会导致精度下降。

BigDecimal bigDecimalValue = new BigDecimal("3584907054456.48");
System.out.println(bigDecimalValue); //3584907054456.48

float floatValue = bigDecimalValue.floatValue();
System.out.println(floatValue); //3.58490702E12

//Formatted better to show the drop in precision.
System.out.println(String.format("%.2f", floatValue)); //3584907018240.00
<小时/>

不要使用float,而是使用BigDecimal

请注意,您无法直接使用 +、-、* 等运算符。您必须使用提供的方法,请参阅 official documentationGeeksForGeeks articles 等文章来帮助您初步掌握它。

示例代码 -

List<String> dataStackedSalesVolume1;
List<String> dataStackedSalesVolume2;

BigDecimal[] firstDataStacked = new BigDecimal[counte];
BigDecimal[] secondDataStacked = new BigDecimal[counte];

int counte = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(1).getDataSalesVolume().size();
dataStackedSalesVolume1 = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(0).getDataSalesVolume();
dataStackedSalesVolume2 = merchantECommerceDataAll.getData().getMerchantECommerceTipekartuList().getMerchantECommerceTipeKartuData().get(1).getDataSalesVolume();

for (int i=0; i< counte; i++) {
firstDataStacked[i] = new BigDecimal(dataStackedSalesVolume1.get(i));
secondDataStacked[i] = new BigDecimal(dataStackedSalesVolume2.get(i));
}

关于java - 将字符串转换为大数浮点型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56233897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com