作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用String
列表进行一些计算:
1.23
4.56
7.89
为了准确起见,我希望将上面的 String
转换为 int
:
123
456
789
如何做到这一点?
抱歉我的描述含糊不清。我真正需要的是无论输入是什么,int值都应该保存特定的小数:
假设我需要 4 位小数:
字符串:1;整数:10000
字符串:1.23 整数:12300
字符串:1.2345 整数:12345
最佳答案
我会去掉这些点,然后解析为 int:
int i = Integer.parseInt(str.replace(".", ""));
如果您需要始终有 3 位数字,这种方法会变得丑陋,但可行:
int i = Integer.parseInt((str.replace(".", "") + "00").replaceAll("^(...).*", "$1"));
这避免了 double 值不精确的变化,这种变化可能会在从 double 转换为 int 时由于截断而导致不正确的结果。
<小时/>以下是不精确问题的示例:
int i = (int) (100 * Double.parseDouble("1.13")); // 112
这是因为:
double d = Double.parseDouble("1.13"); // 112.99999999999999
关于java - 如何在Java中将小数字符串(a.bc)转换为int(abc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952750/
我是一名优秀的程序员,十分优秀!