回答編集履歴

1

fix answer

2023/01/29 00:03

投稿

ps_aux_grep
ps_aux_grep

スコア1579

test CHANGED
@@ -2,6 +2,6 @@
2
2
  `1/a`の時点で浮動小数点数になります.C等の他の言語と違って,除算`/`と商`//`の演算に差があります.
3
3
 
4
4
  ## f(10)=1.0000000009となるが、f(10)とf(2)で誤差が生じる理由
5
- 浮動小数点数はIEEE-754で表現すれば32bitで用意されており,`1/10`すなわち`0.1`が循環小数`0|01111011|10011001100110011001101`となって切り捨てられる部分があるため,`1`と`0.1`の演算やそれを10倍する処理で差が生まれます.
5
+ 浮動小数点数はIEEE-754の64bitで表現すれば,`1/10`すなわち`0.1`が循環小数`0|01111111011|1001100110011001100110011001100110011001100110011010`となって切り捨てられる部分があるため,`1`と`0.1`の演算やそれを10倍する処理で差が生まれます.
6
6
 
7
7
  詳しくは「[丸め誤差](https://www.google.com/search?q=%E4%B8%B8%E3%82%81%E8%AA%A4%E5%B7%AE)」で調べてください.