提问人:Abhilash0496 提问时间:6/16/2023 最后编辑:Gaurav JeswaniAbhilash0496 更新时间:6/16/2023 访问量:86
int 与浮点数的乘法导致错误 [duplicate]
Multiplication of int with float resulting wrong [duplicate]
问:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int tempC = input.nextInt();
float tempF = (tempC * 9 / 5) + 32;
System.out.println(tempF);
}
}
预期输出 - 109.4
电流输出 - 109.0
为什么十进制值设置为零?
答:
0赞
Reilas
6/16/2023
#1
"...为什么十进制值设置为零?
发生这种情况的原因是,两个 int 值的除法将产生一个整数值,而不是一个实数——float 或 double。
您可以通过将浮点数或双文本后缀附加到这两个值的末尾来解决此问题。
这是 Java 教程中的例外。
原始数据类型(Java 教程>学习 Java™ 语言>语言基础知识)。
"...如果浮点文字以字母 F 或 f 结尾,则其类型为 float;否则。。。双倍和......字母D或d。
每个算术语句只需要一个文字后缀。因此,以下内容就足够了。
tempC * 9 / 5f
最后,您可以通过简单地将其写为 5.0 来指定双精度。
虽然,您必须将 tempF 更改为双倍。
double tempF = (tempC * 9 / 5.0) + 32;
评论
TempC