.Net 8.0:JSON 中的 Int128 和 Uint128 等效吗?

问题描述 投票:0回答:1

.NET 8.0 支持 128 位整数,如 Int128 和 Uint128(here),

这如何在浏览器中处理?

[更新]

我主要考虑两件事:

一,这些如何可能在浏览器中通过算术计算来处理(我早期的项目之一涉及浏览器中 JS 的统计分析),以及

第二,如果 .NET 提供这些数据类型,目的是什么以及最常见的相邻构建块/技术可以处理它们。

json browser int128 .net-8.0
1个回答
0
投票

Javascript 至少有两种适用于此的内置类型。如果您可以接受精度损失,那么您可以使用

Number
(JavaScript
Number
类型是双精度 64 位二进制格式 IEEE 754 值,就像 Java 或 C# 中的 double ),否则您需要考虑使用
BigInt
或某些自定义类型。

Number
BigInt
之间的区别:

<h1>JavaScript Numbers</h1>
<h2>Integer Precision</h2>

<p>Integers (numbers without a period or exponent notation) are accurate up to 15 digits:</p>

<p id="demo"></p>

<script>
let x = 999999999999999;
let y = 9999999999999999;
let z = 340282366920938463463374607431768211455;
let zb = BigInt("340282366920938463463374607431768211455");
document.getElementById("demo").innerHTML = x + "<br>" + y + "<br>" + z + "<br>" + zb;
</script>

JSON 对于数字有单一的“直接”节点类型,并且不区分数字类型,默认情况下

JSON.parse
将使用
Number
,因此在大数字的情况下您可能会遇到上述精度损失,在这种情况下您可以查看使用一些解决方法,例如
json-bigint
库或来自 此答案 的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.