有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的双文字赋值

定义有什么区别

double example = 23.1d

或者

double example = 23.1

为什么长、浮和双可以以l、f、d结尾


共 (1) 个答案

  1. # 1 楼答案

    double example = 23.1d;double example = 23.1;之间没有区别,因为没有类型后缀的浮点文字总是被解释为双精度

    类型后缀是必要的,以避免在某些情况下出现歧义

    例如,java支持方法重载。这意味着你可以有void x( float f );void x( double d );两种方法都叫做x;选择哪一个取决于您通过的类型;如果你传递一个已知为float或double的变量,事情就很清楚了;但是如果你想传递一个文本,比如:x( 5 );,那么你必须能够指定这5是浮点还是双精度,以便选择正确的方法

    在其他一些非常微妙的情况下,文字的类型很重要。例如,以下代码:

    System.out.println( "" + (2/3.3333) );
    System.out.println( "" + (2/3.3333f) );
    

    产生以下输出:

    0.6000060000600006
    0.600006
    

    。。。因为第一个数字是双精度的,而第二个数字是浮点数

    类似的消歧问题使得“L”类型后缀对于长整数文本是必要的