문제와 관련하여 문제가있는 것은 아니지만 사람들에게 알리는 방법은 사람들에게 알리는 방법이 많기 때문입니다. Google Web Toolkit에서 작업하십시오.임의의 정밀도 숫자와 자바 스크립트, Google Web Toolkit
그래서 문제 중 하나는 Google gson이 JSON의 숫자를 나타내는 것입니다. 예를 들어 int myInt = 2
은 "myInt":2
이되고 long myLong = 5432198765L
은 "myLong":5432198765
이되고 BigInteger myBI = 1310381093810938109481049128409487109378109248104098130981039810983
은 "myBI":1310381093810938109481049128409487109378109248104098130981039810983
이됩니다. gson 자체가 문제없이이를 deserialize 할 수 있지만 JSON의 GWT 2.4에 포함 된 AutoBeans 프레임 워크는이를 좋아하지 않습니다. Issue 6331은 다가오는 GWT 2.5 릴리스에서 긴 표현으로 수정되었습니다. 그러나 issue 7555은 Javascript 숫자 정밀도가 작동하는 방식 때문에 해결되지 않습니다.
따라서 BigInteger를 String으로 나타내야합니다. 예를 들어 String myBIStr = new BigInteger("1310381093810938109481049128409487109378109248104098130981039810983").toString()
은 "myBIStr":"1310381093810938109481049128409487109378109248104098130981039810983"
으로 표시됩니다. GWT가 끝나면 문자열이 생기고 BigInteger를 만들어야합니다.
Google이 7555를 해결하지 않는 이유는 모두 이해가되지만 실제 질문을하게됩니다. 자바에서 고정 소수점 숫자는 어떻게 처리합니까?
일반적으로 웹 기반 Javascript 및 Google Web Toolkit 프런트 엔드가 네이티브 프런트 엔드에 도전한다면 일반적으로 53 비트로 제한되는 대신 임의의 정밀도 숫자로 작업하는 상황이 발생할 수 있습니다 정확도는 comment 3입니다. 더 나쁜 것은이 제한이 node.js 나 다른 서버 측 자바 스크립트에도 영향을 미치지 않는다는 것입니다.
Google Web Toolkit을 사용하거나 원활하게 작동시키는 멋진 방법이 있습니까?
그러나 암호화 시스템을 구현할 때 BigIntegers를 사용하려고했지만 실패했습니다. 동일한 구현은 표준 Java에서 잘 작동합니다. – xtremebytes
"실패"로 말하면, 예를 들어, 키 생성 단계에서 중단되었습니다. 방금 큰 소수를 계산하는 데 시간이 오래 걸렸고 결국 자바 스크립트가 응답을 멈췄습니다. 사실, 128 비트 공개 키 암호 시스템을 사용해도 실패했습니다. BigInteger가 GWT에 의해 지원된다는 것을 알았 기 때문에 나는 그들과 함께 일할 수 있다고 생각했지만 할 수 없었다. – xtremebytes
그건 자바 스크립트에 대해 부적절한 작업입니다. 그것은 큰 숫자로 작업하는 것이 매우 느리기 때문에 실패하고 많은 수의 많은 작업을 수행하고 있습니다. –