UNIXベースのシステムで問題が発生しました。sprintfが適切に値を切り上げません。
例えば
double tmp = 88888888888885.875
char out[512];
それは88,888,888,888,885.875です。小さい数でうまく機能するように見えるので、私はそのような具体的で大きな例を挙げています。
私はそれを次のように使おうとしています
sprintf(out, "%021.2f", tmp);
printf("out = %s\n", tmp);
Windowsでは、次のようになります。
out = 000088888888888885.88
たとえばAIXの場合ですが、Linuxでも表示されます。
out = 000088888888888885.87
なぜこうなった?Win /Unixでアイデアとそれを同じように動作させる方法
ありがとう