我试图在Java中声明一个long值,遗憾的是它不起作用.
这是我的代码.它会导致以下错误消息:"int类型的文字4294967296超出范围".
long bytes = 4294967296;
Run Code Online (Sandbox Code Playgroud)
我需要这个值来制作一个文件过滤器,过滤掉大于4294967296字节(4GB)的文件.反过来工作没有任何问题(long size = file.length()
)与每个文件大小,这就是为什么我无法弄清楚为什么我的声明不起作用.
我想使用以下函数将Joda Time转换为Unix时间戳:
def toUnixTimeStamp(dt : DateTime) : Int = {
val millis = dt.getMillis
val seconds = if(millis % 1000 == 0) millis / 1000
else { throw new IllegalArgumentException ("Too precise timestamp") }
if (seconds > 2147483647) {
throw new IllegalArgumentException ("Timestamp out of range")
}
seconds
}
Run Code Online (Sandbox Code Playgroud)
我打算得到的时间值绝对不会毫秒精确,它们是合同的第二精确UTC,并且将作为Int进一步存储(在MySQL数据库中),标准Unix时间戳是我们公司的时间记录标准.但是Joda Time只提供getMillis而不是getSeconds,所以我必须得到一个Long毫秒精确的时间戳并将其除以1000以产生标准的Unix时间戳.
而且我很难让Scala从长值中创建一个Int.怎么做这样的演员?
我花了两个小时调试看起来极不可能的事情.我已经删除了辅助Android Activity的方法到这个:
public void onClick(View v) {
String str = "25";
long my_long = Long.getLong(str);
} // onClick (v)
Run Code Online (Sandbox Code Playgroud)
是的,我遇到了好的'NullPointerException:
09-11 02:02:50.444:ERROR/AndroidRuntime(1588):未捕获的处理程序:由于未捕获的异常而导致主线程退出09-11 02:02:50.464:ERROR/AndroidRuntime(1588):java.lang.NullPointerException
看起来(从其他测试中)Long.getLong(str)返回NULL,这让我疯狂.我错过了什么?
提前致谢.我很好,愚蠢地错过了明显的,但我的理智是在线.
string android nullpointerexception string-parsing long-integer
据我了解,双方java.lang.Long
并java.math.BigInteger
可以容纳非常大的自然数.
我也知道Long的最大值,但BigInteger的最大值是多少?
除了容量之外,BigInteger在处理仍然落在Long范围内的一般大整数时会表现得更好吗?
唯一的考虑因素是:我的价值对于龙来说太大了吗?
如何获得比Long.MAX_VALUE更大的长数字?
我想要这个方法返回true
:
boolean isBiggerThanMaxLong(long val) {
return (val > Long.MAX_VALUE);
}
Run Code Online (Sandbox Code Playgroud) 如何在Java中检查null的Long值?
这会有用吗?
if ( longValue == null) { return blah; }
Run Code Online (Sandbox Code Playgroud) 正如我最近所了解的那样,C/C++中的长度与int的长度相同.简单地说,为什么?甚至在语言中包含数据类型似乎也毫无意义.它没有特定于int的特定用途吗?我知道我们可以像这样声明一个64位的int:
long long x = 0;
Run Code Online (Sandbox Code Playgroud)
但是为什么语言会选择这样做,而不仅仅是做得好......比int更长?其他语言如C#这样做,为什么不用C/C++呢?
我想以这种格式dd/mm/YYYY将Long值转换为String或Date.
我有Long格式的这个值:1343805819061.
可以将其转换为日期格式吗?
我一直在使用SqlCeConnection在C#中使用SQL和数据库.我一直在使用ExecuteReader来读取读入Longs的记录ID的结果和BigInt值.
今天我一直在玩SQL语句,这些语句使用基于COUNT的语句('SELECT COUNT(*)FROM X')并且一直在使用ExecuteScalar来读取这些单值结果.
但是,我遇到了一个问题.我似乎无法将值存储到Long数据类型中,我一直在使用它.我可以将它们存储到Int64中.
我一直在使用BigInt作为记录ID来获取最大可能的记录数.
因此,BigInt 8字节是Int64.不是Long等于Int64,因为它们都是64位有符号整数?
因此,为什么我不能将Int64转换为Long?
long recordCount =0;
recordCount = (long)selectCommand.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
错误是:
指定演员表无效.
我可以将BigInt读成Long.这不成问题.我无法读取SQL COUNT到long.
COUNT返回一个Int(Int32),所以问题实际上是将Int32转换为long.