質問する
2316 次
1 に答える
1
回答 1 x86 上の現在の bash のprintflong double
は、IEEE 754 に従って入出力変換を使用します (拡張および拡張可能な精度フォーマット、x86 拡張精度フォーマット、bash のfloatmax_tの定義を参照)。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf("%La\n", strtold("0x1.000010C6F7A0B5E1F", NULL));
}
- その出力は
0x8.00008637bd05af1p-3
です。
回答 2 Bash は最終的に C ライブラリのprintf
; 上記の C プログラムの出力は、参照している標準に従っています。
小数点文字の前に1 つの 16 進数 (引数が正規化された浮動小数点数であり、それ以外の場合は未指定の場合は非ゼロ) があります。
于 2013-07-26T06:32:11.610 に答える