現在、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
。これはdouble
(C#ではfloat
有効数字が7桁以下であるため)、それをdouble
文字列に変換します。
私はこれを行う方法を見つけることができないようです。何か案は?または、独自の関数を作成するか、C#側から同じC ++関数を呼び出す必要がありますか?