Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个if-else语句有问题吗?_Java_Android_If Statement - Fatal编程技术网

Java 这个if-else语句有问题吗?

Java 这个if-else语句有问题吗?,java,android,if-statement,Java,Android,If Statement,当我打印消息内容时,它总是让我体重不足,尽管displaybmi不是displaybmi的值是多少?尝试将比较更改为使用19.0,以确保不会发生截断。您正在将浮点显示bmi与int 19进行比较,这可能会导致不希望的行为。显示bmi的值是多少?尝试将比较更改为使用19.0,以确保不会发生截断。您正在将浮点显示BMI与int 19进行比较,这可能会导致不希望出现的行为。还要仔细检查您的计算: float displaybmi = weight/(height*height); 如果你的体重以千克

当我打印消息内容时,它总是让我体重不足,尽管displaybmi不是displaybmi的值是多少?尝试将比较更改为使用19.0,以确保不会发生截断。您正在将浮点显示bmi与int 19进行比较,这可能会导致不希望的行为。

显示bmi的值是多少?尝试将比较更改为使用19.0,以确保不会发生截断。您正在将浮点显示BMI与int 19进行比较,这可能会导致不希望出现的行为。

还要仔细检查您的计算:

float displaybmi = weight/(height*height);
如果你的体重以千克为单位,身高以米为单位,那么这个方法就有效了。如果您的体重以磅为单位,身高以英寸为单位,则需要添加换算系数:

float displaybmi = (weight * 703.0)/(height * height);

还要仔细检查您的计算:

float displaybmi = weight/(height*height);
如果你的体重以千克为单位,身高以米为单位,那么这个方法就有效了。如果您的体重以磅为单位,身高以英寸为单位,则需要添加换算系数:

float displaybmi = (weight * 703.0)/(height * height);

如果要比较两个浮点,可以使用Float.comparefloat f1、Float f2

报告说:

以数字方式比较两个浮动对象。这有两种方式 使用此方法进行的比较与使用 Java语言的数值比较运算符 应用于基本体浮点值时:

Float.NaN被认为是 此方法必须等于自身并大于所有其他浮点值 值,包括Float.POSITIVE_∞。 此方法认为0.0f大于-0.0f。这确保了浮动对象的自然顺序由 方法与equals一致。
如果要比较两个浮点,可以使用Float.comparefloat f1、Float f2

报告说:

以数字方式比较两个浮动对象。这有两种方式 使用此方法进行的比较与使用 Java语言的数值比较运算符 应用于基本体浮点值时:

Float.NaN被认为是 此方法必须等于自身并大于所有其他浮点值 值,包括Float.POSITIVE_∞。 此方法认为0.0f大于-0.0f。这确保了浮动对象的自然顺序由 方法与equals一致。
我打赌displaybmi小于19,因为比较运算符的类型转换或数学更可能是错误的。是否检查了prefs中的身高和体重设置是否正确?请尝试在if之前打印表达式的值。如果displaybmi==25.5,会发生什么情况?然后不选择任何字符串。另外,变量消息定义在哪里?函数中不在本地声明消息。我敢打赌,您没有实际使用此函数的返回值,或者您正在其他地方更改该值。感谢thomas,我在displaybmi中出错,如果您可以将您的评论作为答案,我将很高兴检查它作为解决方案。我敢打赌displaybmi<19,因为比较运算符的类型转换或数学更可能是错误的。是否检查了prefs中的身高和体重设置是否正确?请尝试在if之前打印表达式的值。如果displaybmi==25.5,会发生什么情况?然后不选择任何字符串。另外,变量消息定义在哪里?函数中不在本地声明消息。我敢打赌,您没有实际使用此函数的返回值,或者您正在其他地方更改该值。感谢thomas,我在displaybmi中出错,如果您可以将您的注释作为答案,我将很高兴将其作为解决方案进行检查。我想知道如何将浮点值与int值进行比较。显然,将应用加宽原语类型转换。@Martin不能保证19.0或任何其他整数可以精确表示。因此,根据舍入的不同,整数X可能比floatX小、相等或大。我想知道如何将float与int进行比较。显然,将应用加宽原语类型转换。@Martin不能保证19.0或任何其他整数可以精确表示。因此,取决于舍入,整数X可能小于、等于或大于floatX。