0

目前我正在尝试匹配 C# 和 C++ 应用程序。在 C++ 方面,当有一个值时,说:

const char* svalue = "554.1327";

当我使用sscanf

float x;
sscanf(svalue, "%f", &x);

x将等于554.13269,即它具有“附加”有效数字,即使它们可能四舍五入到相同的值。(我认为这个应用程序使用了一种不同的float类型,它可以容纳超过 7 个有效数字。)

我不想改变 C++ 方面。我希望我单独的 C# 应用程序也能这样做。

例如,如果我有 float 23423.29,我想将其转换为23423.289,这是 a double(因为在 C# 中,标准float的有效数字不超过 7 个),然后将其double转换为字符串。

我似乎找不到一种方法来做到这一点。有任何想法吗?还是我必须创建自己的函数或从 C# 端调用相同的 C++ 函数……?

4

1 回答 1

0

Hi there is a temprary solution for your problem like

            Double d = 23423.29f;
        int a = 23423.29.ToString().Length;
        Console.WriteLine(d.ToString().Remove(++a));

which gives result

23423.289
于 2012-08-29T08:59:41.800 回答