草庐IT

long-integer

全部标签

java - 为什么 == 与 Integer.valueOf(String) 的比较对 127 和 128 给出不同的结果?

我不知道为什么这些代码行返回不同的值:System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));输出是:truefalsetrue为什么第一个返回true,第二个返回false?127和128之间有什么我不知道的不同之处吗?(当然我知道12712

java - 为什么 == 与 Integer.valueOf(String) 的比较对 127 和 128 给出不同的结果?

我不知道为什么这些代码行返回不同的值:System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));输出是:truefalsetrue为什么第一个返回true,第二个返回false?127和128之间有什么我不知道的不同之处吗?(当然我知道12712

java - 如何在不强制转换的情况下将 double 转换为 long?

在不强制转换的情况下将double转换为long的最佳方法是什么?例如:doubled=394.000;longl=(newDouble(d)).longValue();System.out.println("double="+d+",long="+l); 最佳答案 假设您对截断为零感到满意,只需强制转换:doubled=1234.56;longx=(long)d;//x=1234这将比通过包装类更快-更重要的是,它更具可读性。现在,如果您需要“始终接近零”以外的舍入,则需要稍微复杂一些的代码。

java - 如何在不强制转换的情况下将 double 转换为 long?

在不强制转换的情况下将double转换为long的最佳方法是什么?例如:doubled=394.000;longl=(newDouble(d)).longValue();System.out.println("double="+d+",long="+l); 最佳答案 假设您对截断为零感到满意,只需强制转换:doubled=1234.56;longx=(long)d;//x=1234这将比通过包装类更快-更重要的是,它更具可读性。现在,如果您需要“始终接近零”以外的舍入,则需要稍微复杂一些的代码。

java - 从 List<Integer> 中正确删除整数

这是我刚刚遇到的一个很好的陷阱。考虑一个整数列表:Listlist=newArrayList();list.add(5);list.add(6);list.add(7);list.add(1);对执行list.remove(1)时会发生什么有任何有根据的猜测吗?list.remove(newInteger(1))怎么样?这可能会导致一些讨厌的错误。区分remove(intindex)的正确方法是什么?,从给定索引和remove(Objecto)中删除一个元素,在处理整数列表时通过引用删除元素?这里要考虑的要点是@Nikitamentioned-精确的参数匹配优先于自动装箱。

java - 从 List<Integer> 中正确删除整数

这是我刚刚遇到的一个很好的陷阱。考虑一个整数列表:Listlist=newArrayList();list.add(5);list.add(6);list.add(7);list.add(1);对执行list.remove(1)时会发生什么有任何有根据的猜测吗?list.remove(newInteger(1))怎么样?这可能会导致一些讨厌的错误。区分remove(intindex)的正确方法是什么?,从给定索引和remove(Objecto)中删除一个元素,在处理整数列表时通过引用删除元素?这里要考虑的要点是@Nikitamentioned-精确的参数匹配优先于自动装箱。

java - 在Java中初始化一个long

PrimitiveDataTypes-oracledoc表示Java中long的范围是-9,223,372,036,854,775,808到9,223,372,036,854,775,807。但是当我在我的eclipse中做这样的事情时longi=12345678910;它显示“int类型的文字12345678910超出范围”错误。有2个问题。1)如何使用12345678910值初始化long?2)默认情况下,所有数字文字都是int类型吗? 最佳答案 你应该添加L:longi=12345678910L;。是的。顺便说一句:它不必是大

java - 在Java中初始化一个long

PrimitiveDataTypes-oracledoc表示Java中long的范围是-9,223,372,036,854,775,808到9,223,372,036,854,775,807。但是当我在我的eclipse中做这样的事情时longi=12345678910;它显示“int类型的文字12345678910超出范围”错误。有2个问题。1)如何使用12345678910值初始化long?2)默认情况下,所有数字文字都是int类型吗? 最佳答案 你应该添加L:longi=12345678910L;。是的。顺便说一句:它不必是大

objective-c - 为什么 NSInteger 变量在用作格式参数时必须转换为 long?

NSIntegermyInt=1804809223;NSLog(@"%i",myInt);上面的代码产生错误:Valuesoftype'NSInteger'shouldnotbeusedasformatarguments;addanexplicitcastto'long' instead更正后的NSLog消息实际上是NSLog(@"%lg",(long)myInt);。如果我想显示值,为什么我必须将myInt的整数值转换为long? 最佳答案 如果您在OSX(64位)上编译,您会收到此警告,因为在该平台上,NSInteger被定义为

objective-c - 为什么 NSInteger 变量在用作格式参数时必须转换为 long?

NSIntegermyInt=1804809223;NSLog(@"%i",myInt);上面的代码产生错误:Valuesoftype'NSInteger'shouldnotbeusedasformatarguments;addanexplicitcastto'long' instead更正后的NSLog消息实际上是NSLog(@"%lg",(long)myInt);。如果我想显示值,为什么我必须将myInt的整数值转换为long? 最佳答案 如果您在OSX(64位)上编译,您会收到此警告,因为在该平台上,NSInteger被定义为