gpt4 book ai didi

Android - 避免字符串中的指数转换为双倍转换

转载 作者:太空狗 更新时间:2023-10-29 12:44:50 26 4
gpt4 key购买 nike

我试图从 edittext 中获取值并存储为字符串。然后它转换为双倍。虽然最多可以转换 7 个字符,但如果我尝试添加超过 7 个字符,结果是 1.23456789E8。这是我的代码

String value = txtData.txtSearch.getText().toString();
// value = "987654321.45"

double amount1 = Double.parseDouble(value);
// amount1 = 9.8765432145E8

double amount2 = 0.05;

double result = (amount1 * amount2) / 100;
// result = 4.3827160725E14

经过计算我得到 4.3827160725E14 这是不正确的正确答案是 493827.16

如何在不损失精度的情况下获得正确的值?

最佳答案

我解决了。我现在使用 BigDecimal 而不是 double 我的代码是

String value = txtData.txtSearch.getText().toString();
// value = "987654321.45"

BigDecimal amount1 = new BigDecimal(value);
// amount1 = "987654321.45"

BigDecimal amount2 = new BigDecimal(0.05);

BigDecimal result = (amount1.multiply(amount2)).divide(new BigDecimal(100));
result = result.setScale(2, RoundingMode.FLOOR);
// result = 493827.16

关于Android - 避免字符串中的指数转换为双倍转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19970422/

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