将double转换为int而不会损失java

时间:2015-11-27 14:02:38

标签: java integer double

我想将双倍(例如价值为1.90的价格)转换为无损失的整数!我正在制作一个处理钱的程序,我必须将它们作为双打输入,然后将它们转换为整数,以便我可以处理它们,例如当我有1.90欧元并且我想将它转换为美分它将显示为189美分而不是190美分!请帮帮我:)提前谢谢

2 个答案:

答案 0 :(得分:5)

JLS

中查看有关double和浮点数在java中的行为方式的详细信息

好吧,你可以将值四舍五入到所需的精度。只要你在给定的format's precision范围内(对于浮动来说,双倍~7左右为~15位数),你就会得到很好的结果。

double fractValue = 1.90; // 1.8999999....
int val = (int)Math.round(fractValue*100);

尽管使用BigDecimal更好。那么你永远不会失去任何精确度。

答案 1 :(得分:-1)

add

double x = 1.89; //Or whatever String[] y = String.valueOf(x).split("[.]"); // Returns array having 1 and 89 String z = y[0] + y[1]; //String which is = 189 if(y[1].length()==1) z +="0"; // Add a 0 in end if required int finalInt = Integer.parseInt(z); //Convert String to Integer 应该是你想要的。