如何将小数转换为整数? (JAVA)

时间:2014-01-10 02:58:18

标签: java integer decimal

我做了一个计算器来计算圆的测量值。我目前正在使用此命令要求玩家输入圆的半径:

String br = JOptionPane.showInputDialog(null, "Enter The Radius" , "CircleHacker", JOptionPane.PLAIN_MESSAGE);
int bravo = Integer.parseInt(br);

它现在有效,但我刚刚意识到,因为它是基于整数的,所以它不能做小数! 有什么我可以做的来修改我在这里的内容,使其能够处理小数位数吗? -thanks(顺便说一句,我现在只知道java 4天所以我只是一个初学者)     -Thanks!

3 个答案:

答案 0 :(得分:2)

十进制数在Java中具有数据类型doublefloat。因此,您可以将代码重写为:

String br = JOptionPane.showInputDialog(null, "Enter The Radius" , "CircleHacker", JOptionPane.PLAIN_MESSAGE);
double bravo = Double.parseDouble(br);

Double是一种更精确(更大)的数据类型;由于内存很便宜,我建议使用double而不是float

答案 1 :(得分:1)

这个怎么样?

double bravo = Double.parseDouble(br);

假设用户输入类似1.23的内容,这可以解决您的问题。

请注意,您也可以使用float代替double,但double具有更高的精度,可能与您的用例相关或不相关。

另请注意,在某些语言环境中,使用了逗号等不同的分隔符,您可能需要单独处理它们,请参阅https://stackoverflow.com/questions/4323599/best-way-to-parsedouble-with-comma-as-decimal-separator

答案 2 :(得分:1)

对于计算器,您可以使用Double.parseDouble(String)与此类似的内容 -

double bravo = Double.parseDouble(br);

但是你可以使用类似的BigDecimal来支持任意精度 -

BigDecimal bravo = new BigDecimal(br);

如果要丢失小数精度,可以执行几种舍入,并将它们记录在我刚提供的相同链接中。例如,BigDecimal#toBigInteger()(long) bravo(这是一个演员,不是四舍五入;但具有与floor()函数相同的实际效果。)