相关疑难解决方法(0)

如何使用UUID生成唯一的Long

我需要为我的数据库主键列生成唯一的Long ID.

我以为我可以使用UUID.randomUUID().getMostSignificantBits(),但有时它会产生一些负面长,这对我来说也是个问题.

是否有可能只从UUID生成正长?会有数十亿条目,所以我希望每个生成的密钥必须是唯一的.

java uuid

29
推荐指数
4
解决办法
5万
查看次数

为什么 5726718050568503296 在 JS 中被截断

根据标准ES 将数字实现为 IEEE754 双倍。

https://www.binaryconvert.com/result_double.html?decimal=053055050054055049056048053048053054056053048051050057054和其他编程语言https://play.golang.org/p/5QyT7iPHNim它看起来像5726718050568503296值可以精确表示不失精度。

为什么它在 JS 中丢失了 3 个有效数字(在最新的稳定版 google chrome 和 firefox 中转载)

这个问题最初是从golang 中复制 javascript 不安全数字触发的

该值在双 IEEE754 中绝对可以表示,请参阅 Go 中如何将裸位转换为 float64:https : //play.golang.org/p/zMspidoIh2w

javascript floating-point ieee-754

9
推荐指数
1
解决办法
154
查看次数

JSON中的Big Integer被Angular破坏而不是被CURL破坏?

我使用Django Rest Framework创建了一个Django REST API .

我使用3个不同的客户来点击这个应用程序:

  • 卷曲(用于调试目的)
  • Swagger接口(用于调试目的)
  • 我的Angular应用程序

我有一个令人困惑的问题,即API返回的数据被Swagger和Angular损坏,而不是被Curl破坏.

我的Django模型看起来像这样:

class MyModel1(CachingMixin, models.Model):
    id = models.BigIntegerField(default=make_id, primary_key=True)
    name = models.CharField(max_length=50, null=False, blank=False,)
Run Code Online (Sandbox Code Playgroud)

这里make_id()描述上面引用的方法.我最近从标准的Django分配和自动递增的主键实现了这一变化.作为改变的一部分,我将id从IntegerFielda 转换为a BigIntegerField.

我有一些其他Django视图代码(我在这里没有显示)创建一个名为的端点GetMyModel1ByName.该端点返回一个序列化的实例MyModel1.这是卷曲,显示当我点击该端点时会发生什么.它完美地运作:

$ curl http://localhost:4212/api/getMyModel1ByName/?name=my-name
{"id": 10150133855458395, "name": "my-name"}
Run Code Online (Sandbox Code Playgroud)

现在,当我从Chrome的开发者控制台访问同一个端点时会发生什么:

> $http = angular.element(document.body).injector().get('$http');
> $http.get("http://localhost:4212/api/getMyModel1ByName/?name=my-name").then(function(response) { console.log(JSON.stringify(response.data)) }).catch(function (error) { console.log(error.data) });
{"id":10150133855458396, "name":"my-name"}
Run Code Online (Sandbox Code Playgroud)

正如您所见,curl将ID报告为10150133855458395.这是正确的.这就是数据库中的内容.但Angular将其报告为1015013385545839 6.最后的数字是错误的.差异是1.这是非常令人惊讶的!

这是一个真正令人困惑的错误.我的Django代码非常简单,我非常有信心它没有错误.相反,我觉得这个改变id从外地IntegerFieldBigIntegerField可能导致此问题.为什么会这样,解决方案是什么?它破坏了我的应用程序的功能.当我通过Swagger点击此端点时,我看到同样的损坏.

编辑:另一个提问者遇到了同样的问题.很高兴知道我不是唯一一个!但是,这个问题的答案并不是真正的答案.他们没有解释原因.他们没有告诉我如何在Angular JS代码中解决问题.

python django rest json angularjs

6
推荐指数
2
解决办法
735
查看次数

Json 最大整数数

请告诉我,如何从json中获取数字,为什么数字末尾会出现零?

var a = '{ "n": 870744036720833075 }';
var json = JSON.parse(a);

document.getElementById('test').innerHTML = json.n; // 870744036720833000 why?
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

javascript json

5
推荐指数
1
解决办法
7451
查看次数

Javascript - 在默认解析之前将 EXTRA LARGE Number 转换为 JSON 中的字符串

正如我在这个问题中提到的,从服务器获取响应时遇到问题。

我收到一组具有以下属性的对象:

[{
"Id": 143187001116603,   // VERY big number which I want to convert it to string
"Name": "????612",   // string
"Title": "??????? ???? ???? ???-?????96",   // string
"InsCode": "IRO6MELZ96C1"   // string
},
...
]
Run Code Online (Sandbox Code Playgroud)

任何简单的方法来指定类型(转换Number),以string在一个JSON文件?

我看到了replacer论点,JSON.stringify()但我不知道如何使用它...

更新

其中一个 Id 是:9481703061634967但是 JS 将其转换为9481703061634968!

更新

正如乔纳斯 H这个答案中所说,JS 运行默认解析,这就是为什么我失去了我的真正Id价值!

任何的想法?

javascript json ecmascript-6 reactjs react-native

5
推荐指数
1
解决办法
2009
查看次数

javascript中的Stange功能

可能重复:
大量错误在Javascript中舍入

在javascript中处理数字时,我遇到了一些奇怪的行为.当我使用以下代码时:

<a href="javascript:console.log({'id':9200000000032337}.id);"> CLICK HERE </a>
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到了号码920000000003233 6.我认为它最多是数字的舍入或最大值,但我完全不理解它.任何人?

javascript

4
推荐指数
1
解决办法
186
查看次数

Javascript无法正确呈现此数字:3494793310847464221

我有一个有趣的问题,我一直在用javascript做一些工作,数据库ID出现为"3494793310847464221",现在这是作为数字输入javascript但是它使用数字作为不同的值,两者输出到警报以及传递给另一个javascript函数时.

以下是一些示例代码,可以最大限度地显示错误.

<html><head><script language="javascript">alert( 3494793310847464221);
var rar =  3494793310847464221;
alert(rar);
</script></head></html>
Run Code Online (Sandbox Code Playgroud)

这完全困扰了我,因为谷歌不是我的朋友......

顺便说一下这个数字比那里的数字多179个......

javascript

2
推荐指数
2
解决办法
2346
查看次数

为什么 javascript Number 函数返回该数字的错误值?

所以我用javascript Number()函数遇到了这个问题,它似乎返回了错误的值:以下代码:Number(“10153396863200835”)返回
10153396863200836,而不是10153396863200835

但如果我执行 Number("10153396863200836") 它返回 10153396863200836 并且 Number("10153396863200834") 返回 10153396863200834

所以我很困惑发生了什么事?谢谢

javascript numbers

0
推荐指数
1
解决办法
1133
查看次数