名前 題名 ▼ Mr.XRAYさん > >したがって,以下のように,SimpleRoundTo の丸めの位置を小数点 3 桁目にすると > >下図のような結果となります. > > 以下のようなコードでも確認できます. > 小数点以下,何桁目で丸めをするかということと, > 何桁目までを表示するかということとは違うことにも注意します. > > > procedure TForm1.Button1Click(Sender: TObject); > var > a,b,c,d,e,f:Extended; > StrText : string; > begin > e:= 179.9349; > f:= 179.9350; > > StrText := FloatToStr(e) + sLineBreak + > FloatToStr(f) + sLineBreak + sLineBreak + > FloatToStr(SimpleRoundTo(e,-2)) + sLineBreak + > FloatToStr(SimpleRoundTo(f,-2)) + sLineBreak + sLineBreak + > FloatToStr(SimpleRoundTo(e,-3)) + sLineBreak + > FloatToStr(SimpleRoundTo(f,-3)); > > MessageBox(Handle, PChar(StrText), '結果', MB_OK); > end; > > 179.9349 を小数点 2 桁目で丸めると,179.93 となるのは, > 小数点 3 桁目の値が 4 (5 よりも小さい) だからです. > 最初に示したサンプルコードでの e の計算結果は,実際には以下のようになっています. > 179.93499999999.... > 少なくても仮数部 (有効桁数) の 15 桁目までは 9 ということになります. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link