Java 如何知道浮点值是否大于Integer.MAX\u值?

Java 如何知道浮点值是否大于Integer.MAX\u值?,java,floating-point,integer,compare,Java,Floating Point,Integer,Compare,语句不起作用,条件失败 比较浮点和整数值的正确方法是什么?代码没有问题。99999999.99乘以100等于99999999。 这比max int==2147483647大(它是2^31-1)。如果希望能够存储更大的整数,请使用long 如果不是您的问题,请进一步说明。您的代码没有问题。99999999.99乘以100等于99999999。 这比max int==2147483647大(它是2^31-1)。如果希望能够存储更大的整数,请使用long 如果这不是你的问题,请进一步说明。试试以下方法

语句不起作用,条件失败


比较浮点和整数值的正确方法是什么?

代码没有问题。99999999.99乘以100等于99999999。 这比
max int==2147483647
大(它是2^31-1)。如果希望能够存储更大的整数,请使用
long


如果不是您的问题,请进一步说明。

您的代码没有问题。99999999.99乘以100等于99999999。 这比
max int==2147483647
大(它是2^31-1)。如果希望能够存储更大的整数,请使用
long

如果这不是你的问题,请进一步说明。

试试以下方法:

// The given input
String input = "99999999.99";

// We need only 2 decimals (in case of more than 2 decimals is in input)
Float value = Float.valueOf(input);
DecimalFormat df = new DecimalFormat("#0.00");
input = df.format(value);
value = new Float(input);

// Now we have a clear 2 decimal float value
// Check for overflow
value *= 100; // Multiply by 100, because we're working with cents

if (value >= Integer.MAX_VALUE) {
   System.out.println("Invalid value");
}
else {
///
}
祝你有愉快的一天

试试这个:

// The given input
String input = "99999999.99";

// We need only 2 decimals (in case of more than 2 decimals is in input)
Float value = Float.valueOf(input);
DecimalFormat df = new DecimalFormat("#0.00");
input = df.format(value);
value = new Float(input);

// Now we have a clear 2 decimal float value
// Check for overflow
value *= 100; // Multiply by 100, because we're working with cents

if (value >= Integer.MAX_VALUE) {
   System.out.println("Invalid value");
}
else {
///
}

祝您愉快

您的代码产生异常,因为使用的十进制分隔符是',“您的代码产生异常,因为使用的十进制分隔符是',“请注意,
浮点
的精度不足以处理
整数的整个范围。如果您在处理货币,应尽可能避免使用浮点数。请注意,
Float
的精度不足以处理
整数的整个范围。如果你在处理钱,你应该尽可能避免使用浮点数。