将双精度数组传递回 TypeScript

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

在我们的 C++ 代码中,我们有以下内容:

arraySize = regionsvertices.size();
double* arr = new double[arraySize];
int k = 0;
for (double i : regionsvertices) {
    arr[k++] = i;
}

return arr;

相关的C#代码如下所示:

var regionsPtr = region_growing_algorithm(
    pointsArr,
    simpleShape.points.Length / 3,
    simpleShape.faces,
    simpleShape.faces.Length / 3,
    filename);

var arrayLength = get_array_size();
var regions = new double[arrayLength];
Marshal.Copy(regionsPtr, regions, 0, arrayLength);

return new JsonResult
{
    Data = regions
};

在 TypeScript 中我们这样做:

$.ajax({
    type: "POST",
    url: "/ShapeDetection/RegionGrowing",
    data: {
        points: points,
        faces: faces
    },
    success: function (result) {
        console.log("result from RegionGrowing", result.Data);
    },
    dataType: "json"
});

问题是我们得到的 result.Data 数值是整数,而不是双精度值。不知何故,数字无法正确转换。

你能告诉我们我们做错了什么吗?

c# jquery c++ typescript ajax
1个回答
-1
投票
var data = JSON.parse(result.Data); // Parse the JSON to ensure types

通过使用 JSON.parse,您可以将接收到的 JSON 数据显式转换为 JavaScript 对象,这应该保持双精度。这可以帮助确保数字在客户端被视为双精度数,无论它们在服务器端如何序列化。

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