我试图使用if语句比较浮点数中的小数,但我不知道该怎么做。我搜索了很多,但没有得到答案。
例如:
如果我有像这样的浮点数5.26,如果第二个小数(即6)是否大于/小于(某个数字),我该怎么说?!
我希望明白这一点。
重新形成Qs:
如果我有一个小数点后面有2个数字的浮点数,我想检查第二个数字是否大于“5” - 例如 - 或者不是?
答案 0 :(得分:5)
获取浮动的第N个小数
这是获取浮点数的第N个小数位的技巧:
示例强>
获取0.12438的第三个小数。我们希望答案是4。
如何运作
乘以10 n 得到你关心的十进制数。转换为int会丢弃小数。除了那些之外,模数减少了10个。
如果输入为负,我们取绝对值。
代码段
float num = 0.12438f;
int thirdDecimal = (int)(Math.abs(num) * Math.pow(10,3)) % 10; // Equals 4
int fifthDecimal = (int)(Math.abs(num) * Math.pow(10,4)) % 10; // Equals 3
答案 1 :(得分:1)
不确定这是否是最佳解决方案,但是......
制作一串它; 循环穿过字符串; 检查你想要检查的内容。
答案 2 :(得分:1)
您可以使用Double
并在其上调用toString
,然后像这样迭代charArray
public class TestIndexOf {
public static void main(String[] args) {
Double d = 5.26;
String source = d.toString();
char[] chars = source.toCharArray();
char max = source.charAt(source.length() - 1);
boolean isMax = true;
for (char aChar : chars) {
if (max < aChar) {
max = aChar;
isMax = false;
}
}
System.out.println(max + " is max?" + isMax);
}
}