我写了这段代码:
float b = 3.6;
Run Code Online (Sandbox Code Playgroud)
我明白了
Error:Unresolved compilation problem:
Type mismatch: cannot convert from double to float
为什么?是什么定义float?
我不知道为什么在Java或其他语言中浮点值之后放置f或F?例如,
float fVariable = 12.3f;
Run Code Online (Sandbox Code Playgroud)
除了表明这是浮点值以外的任何其他功能?
float ff = (float)31.15;
double dd = 31.15;
var frst = Math.Round(ff, 1, MidpointRounding.AwayFromZero);
var drst = Math.Round(dd, 1, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)
第一次:31.1
第一次:31.2
有人可以解释原因吗?
我已经定义了一个带有一个float类型参数的方法,如下所示:
public float getValue(float value){
return value;
}
Run Code Online (Sandbox Code Playgroud)
当我通过传递浮点值来调用此方法时,如下所示:10.1201:
float value = methodReturnTest.getValue(10.1201);
Run Code Online (Sandbox Code Playgroud)
我的IDE说要将参数转换为float.我试过搜索但无法得到合适的答案.发布它.请解释 .
谢谢.
char c1 = 123; //Compiles fine
char c2 = 123456; //Error: cannot convert from int to char
Run Code Online (Sandbox Code Playgroud)
Java足够聪明,可以确定整数是否足够小以转换为字符.为什么它无法将非常小的浮点文字转换为浮点数?例如:
float f1 = 0.3; //Error: cannot convert from double to float
float f2 = 0.3f; //Compiles fine
Run Code Online (Sandbox Code Playgroud)
char c =某些整数文字可能会编译但浮动f =某些浮点文字永远不会编译.为什么?
PS:我知道默认情况下浮点文字被视为double
为什么我必须加入f变量f?
float f =5.67f;
Run Code Online (Sandbox Code Playgroud)
我知道double变量可以接受更多的抽象数字float
但是为什么我必须在我已经说过变量f之后添加5.67它float?
如果我们float在 Java 中使用数据类型,我们必须f在浮点文字的末尾添加,因为 Java 假定它是double数据类型并给出一个错误,为什么不这样做short,byte因为两者的范围都小于int.
我无法理解文字常量的类型修饰符的用途是什么,比如数值常量:
75
75u
75l
75ul
75lu
Run Code Online (Sandbox Code Playgroud)
在什么情况下这可能有用?我的意思是如果你已经为变量类型声明了一个类型修饰符,我认为没有必要这样做.如果有人能帮助我理解这一点,那将是惊人的!谢谢!
奖金问题:"文字"是否与"常数"相同,你可以只说"文字"而不是"文字常量"吗?