我在论坛上看到的答案是
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String str;
int maxCardNum = 0;
while(cin.hasNext())
{
str = cin.nextLine();
if(str.equals("0.00"))
break;
float len = Float.valueOf(str).floatValue();
maxCardNum = getCardNum(len);
System.out.println(maxCardNum + " card(s)");
}
}
private static int getCardNum(float len)
{
float value = 0;
int index = 2;
while (value < len)
{
value += 1.0/index;
index++;
}
return index-2;
}
}
我现有有点疑问:无限不循环小数转换为float数所舍弃部分对结果是否有影响(如1/3变为0.33),当数据足够大的时候有影响还是无影响。请各位大佬指点,谢谢!
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String str;
int maxCardNum = 0;
while(cin.hasNext())
{
str = cin.nextLine();
if(str.equals("0.00"))
break;
float len = Float.valueOf(str).floatValue();
maxCardNum = getCardNum(len);
System.out.println(maxCardNum + " card(s)");
}
}
private static int getCardNum(float len)
{
float value = 0;
int index = 2;
while (value < len)
{
value += 1.0/index;
index++;
}
return index-2;
}
}
我现有有点疑问:无限不循环小数转换为float数所舍弃部分对结果是否有影响(如1/3变为0.33),当数据足够大的时候有影响还是无影响。请各位大佬指点,谢谢!