現在、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 ++関数を呼び出す必要がありますか?