这是我想要的SQL(ClearinghouseKey是bigint):
select *
from ConsOutput O
where O.ClearinghouseKey IN (
select distinct P.clearinghouseKey
from Project P
Inner join LandUseInProject L on L.ClearinghouseKey = P.ClearinghouseKey
where P.ProjectLocationKey IN ('L101', 'L102', 'L103')
and L.LandUseKey IN ('U000', 'U001', 'U002', 'U003')
)
Run Code Online (Sandbox Code Playgroud)
内部查询是直接的,并在LINQPad中给出正确的结果:
var innerQuery = (from p in Projects
join l in LandUseInProjects on p.ClearinghouseKey equals l.ClearinghouseKey
where locations.Contains(p.ProjectLocationKey)
&& (landuses.Contains(l.LandUseKey))
select new { p.ClearinghouseKey }).Distinct();
Run Code Online (Sandbox Code Playgroud)
但是外部查询给出了错误:从...中键入参数包含..无法从用法推断:
var returnQuery = from o in OperOutput
where (innerQuery).Contains(o.ClearinghouseKey)
select o;
Run Code Online (Sandbox Code Playgroud)
是因为ClearinghouseKey是一个bigint?还有其他任何方式来编写此查询吗? …
我在方法的头部有以下代码:
BigInteger foo = BigInteger.valueOf(0);
BigInteger triNum = BigInteger.valueOf(0);
//set min value to 1*2*3*4*5*...*199*200.
BigInteger min = BigInteger.ONE;
BigInteger temp = BigInteger.ZERO;
for(int i=1; i<=200; i++)
{
temp = BigInteger.valueOf(i);
min = min.multiply(temp);
}
System.out.println(min);
while(triNum.compareTo(min) <= 0)
{
foo.add(BigInteger.ONE);
triNum = triNum.add(foo);
System.out.println("triNum: "+triNum);
}
Run Code Online (Sandbox Code Playgroud)
这应该将min加载到一个值(1*2*3*...*199*200),然后将triNum设置为第一个*三角形数**,其值大于min.
问题是,当我运行该方法时,我得到的是一个终端窗口,其中"triNum:0"列表在屏幕上滚动...我的代码中没有看到任何内容(尽管我完全可以做到有些错误,我对math.BigInteger有些不熟悉,这似乎又指向了BigInteger类.有人看到我的代码中有错误吗?
.................................................. .................................................. ......................
*三角形数字是一个可以达到的数字:1 + 2 + 3 + 4 + 5 + 6 + 7 + ......
我有一个场景,我正在使用大整数(例如160位),并试图创建最大可能的无符号整数,可以n在运行时用位数表示.在程序开始执行并从配置文件中读取值之前,不知道n的确切值.例如,n可能是160,或128,或192,等等......
最初我的想法是这样的:
BigInteger.valueOf((long)Math.pow(2, n));
Run Code Online (Sandbox Code Playgroud)
但后来我才意识到,转换为long会发生这种情况有点失败的目的,因为长时间内没有足够的位来存储结果.有什么建议?
我试图BigInteger用来表示long来自Java中的C 的无符号64位(),我的方法与下面的帖子中提到的完全相同.
http://technologicaloddity.com/2010/09/22/biginteger-as-unsigned-long-in-java/
你们其中一个人可以证实这种方法是正确的吗?
在这方面的任何帮助表示赞赏.
我搜索了很多,但没有帮助我:(假设我需要转换12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920(在葡萄牙语组分隔符:.)到BigInteger值.如何进行转换?我试过使用NumberFormat,DecimalFormat,没有任何作用或我没有正确的方式:(
我正在用加密技术写我的裁判工作,今天我试图从字符串中获取一个BigInteger数字.但我发现从字符串中获取BigInteger数字的唯一方法是
UTF8Encoding Encoding = new UTF8Encoding();
var bytes = Encoding.GetBytes(myString);
var myBigInteger = new BigInteger(bytes);
Run Code Online (Sandbox Code Playgroud)
但这不是我需要的方式.我需要一些能够完全返回BigInteger表示字符串的东西.例如,如果我有
var myString = "1234567890";
Run Code Online (Sandbox Code Playgroud)
我想要我的BigInteger
BigInteger bi = 1234567890;
Run Code Online (Sandbox Code Playgroud) 我正在创建两个巨大的BigIntegers,然后将它们连接起来.但是和操作不起作用而是返回0.为什么?
BigInteger aa = new BigInteger("213092840173096182527577008347205670468257779233261101799142588416");
BigInteger bb = new BigInteger("226156424291633194186662097633113218007386784142018559245972777080014766080");
System.out.println(aa.and(bb));
Run Code Online (Sandbox Code Playgroud)
输出:0
我在那两个号码上做了一个BigInteger'或'''或''操作正常.还有其他人看到同样的问题吗?
请注意我使用的是jdk 1.8.
我写了这个方法,在arrayList中搜索是否有两个数字,它们总和等于变量elem.问题是变量的总和超过了long类型的维数.我怎么写呢?
public static boolean searchSum(ArrayList<Long> array, long elem) {
int left = 0, right = array.size()-1;
while (left<right) {
long n1=Long.valueOf(array.get(left));
long n2=Long.valueOf(array.get(right));
if ((n1+n2)==elem) return true;
else if ((n1+n2)<elem) left++;
else right--;
}
return false;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将以字符串形式出现的UUID转换为Big Integer,但每次都失败,并带有Number Format异常,因为它需要String Decimal作为参数。有什么方法可以实现这一目标。
String x = "6CFAFD0DA976088FE05400144FFB4B37";
Run Code Online (Sandbox Code Playgroud)
我也尝试了基数,但输出是不同的。
BigInteger big = new BigInteger(x, 0);
System.out.println(big);
Run Code Online (Sandbox Code Playgroud)
感谢您的协助,TIA。
我知道BigInteger有一个构造函数,你可以通过传递新BigInteger的最大bitLength和一个随机参数来生成随机BigInteger:
BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)
如何生成随机BitInteger,其中numBits的类型为BitInteger而不是int?注意:我不想这样做myBitInteger.intValue().
biginteger ×10
java ×8
long-integer ×2
c# ×1
contains ×1
formatting ×1
integer ×1
linq ×1
locale ×1
nested-query ×1
numbers ×1
string ×1
unsigned ×1
uuid ×1