gpt4 book ai didi

java - 如何正确地将具有给定小数位数的浮点值的字符串解析为整数?

转载 作者:行者123 更新时间:2023-12-02 08:43:01 25 4
gpt4 key购买 nike

我有给定小数位数的浮点值。在此示例中,保留小数点后 2 位。

例如:

33.3
134.45

从这些字符串中我想得到以下整数:

3330
13445

我想利用我们事先知道小数位数的事实将这些字符串解析为等效的整数值。在本例中为 2,因此实际的浮点/ double 需要乘以 100。

我尝试了以下代码,但它将 33.3 解析为 3329 而不是 3330

这是我尝试过的代码:

public class HelloWorld{

public static void main(String []args){

int decimalDigits = 2;
String strNumber = "33.3";
double doubleNumber = Double.parseDouble(strNumber);
int intNumber = (int)(Double.parseDouble(strNumber) * (double)Math.pow(10,decimalDigits) );

System.out.println(strNumber);
System.out.println(doubleNumber);
System.out.println(intNumber);

}
}

这就是结果:

$javac HelloWorld.java
$java -Xmx128M -Xms16M HelloWorld
33.3
33.3
3329

最佳答案

为了保持精度,我建议使用 BigDecimal :

int decimalDigits = 2;
String strNumber = "33.3";
BigDecimal decimalNumber = new BigDecimal(strNumber);
int intNumber = decimalNumber.movePointRight(decimalDigits).intValue();

System.out.println(strNumber);
System.out.println(decimalNumber);
System.out.println(intNumber);

输出:

33.3
33.3
3330

关于java - 如何正确地将具有给定小数位数的浮点值的字符串解析为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61257446/

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