Submit Search
Upload
はんなりpython#32
•
0 likes
•
134 views
H
hiroya akita
Follow
なんなりPython#32の発表資料です
Read less
Read more
Software
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
Compile Time Type Level C Compiler (this may indicate out of memory)
Compile Time Type Level C Compiler (this may indicate out of memory)
Sohei Yamaga
Ruby紹介
Ruby紹介
Gohryuh
括弧を使わないLispプログラミング
括弧を使わないLispプログラミング
Yuta Mizushima
20160319 プログラマのための数学勉強会
20160319 プログラマのための数学勉強会
Noboru Wakabayashi
詳解! Decimal
詳解! Decimal
Tadashi Saito
Community Open Day 沖縄
Community Open Day 沖縄
Yutaka Tsumori
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Masahiro Sakai
KyotoLT_Online_27.pdf
KyotoLT_Online_27.pdf
hiroya akita
Recommended
Compile Time Type Level C Compiler (this may indicate out of memory)
Compile Time Type Level C Compiler (this may indicate out of memory)
Sohei Yamaga
Ruby紹介
Ruby紹介
Gohryuh
括弧を使わないLispプログラミング
括弧を使わないLispプログラミング
Yuta Mizushima
20160319 プログラマのための数学勉強会
20160319 プログラマのための数学勉強会
Noboru Wakabayashi
詳解! Decimal
詳解! Decimal
Tadashi Saito
Community Open Day 沖縄
Community Open Day 沖縄
Yutaka Tsumori
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Masahiro Sakai
KyotoLT_Online_27.pdf
KyotoLT_Online_27.pdf
hiroya akita
はんなりPython #45
はんなりPython #45
hiroya akita
Python 3.10の新機能を 俯瞰してみる
Python 3.10の新機能を 俯瞰してみる
hiroya akita
KyotoLT(Online) 第26回
KyotoLT(Online) 第26回
hiroya akita
AppSync導入のすすめ
AppSync導入のすすめ
hiroya akita
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
Hannari python#27
Hannari python#27
hiroya akita
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
hiroya akita
みんなのはんなりPython勉強会
みんなのはんなりPython勉強会
hiroya akita
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
hiroya akita
Lt debian 20190526
Lt debian 20190526
hiroya akita
More Related Content
More from hiroya akita
はんなりPython #45
はんなりPython #45
hiroya akita
Python 3.10の新機能を 俯瞰してみる
Python 3.10の新機能を 俯瞰してみる
hiroya akita
KyotoLT(Online) 第26回
KyotoLT(Online) 第26回
hiroya akita
AppSync導入のすすめ
AppSync導入のすすめ
hiroya akita
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
Hannari python#27
Hannari python#27
hiroya akita
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
hiroya akita
みんなのはんなりPython勉強会
みんなのはんなりPython勉強会
hiroya akita
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
hiroya akita
Lt debian 20190526
Lt debian 20190526
hiroya akita
More from hiroya akita
(10)
はんなりPython #45
はんなりPython #45
Python 3.10の新機能を 俯瞰してみる
Python 3.10の新機能を 俯瞰してみる
KyotoLT(Online) 第26回
KyotoLT(Online) 第26回
AppSync導入のすすめ
AppSync導入のすすめ
みんなのPython勉強会#62
みんなのPython勉強会#62
Hannari python#27
Hannari python#27
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
みんなのはんなりPython勉強会
みんなのはんなりPython勉強会
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
Lt debian 20190526
Lt debian 20190526
はんなりpython#32
1.
Pythonで小数計算を克服する はんなりPython #32 2020/9/18@オンライン あっきー
2.
自己紹介 2 ● 京都のIT会社で働いてます ● 業務では主に、AWS、Openblocks、SORACOM などを使ってサービスを提供してます ●
PythonはAWS Lambdaでバリバリ書いてます 最近は少しフロントエンドの開発にも慣 れてきました
3.
ところで、、、 みなさんはPythonで小数点の計算を したことがありますか?
4.
あきたくーん 画面に表示されている小数の値が おかしいみたいなんだけれど 確かにおかしいですね 想定している桁数以上の結果が 表示されてます。。。
5.
な ガタガタ(((゚Д゚)))ガタガタ お セ
6.
そもそもプログラミングにおける小数とは プログラミングにおける小数は2進浮動小数として扱うため小数を正確に扱うことができ ない 例えば、0.1は浮動小数では正確に表現することができないため、計算結果が 想定通りにならないことがある
7.
decimalを知る 小数を10進浮動小数で表現することができるため、小数計算における誤差を最小にする ことができる
8.
decimalの罠にかかる floatからDecimalへの変換は文字列型を介して変換しないと、2進浮動小数で表現 されてしまう
9.
ま やった Decimal使ったら万事解決やん ダ おか しい ゾ ヒィィィィ∑(゚Д゚; )
10.
decimalでも循環小数は対応できない 例えば、1 ÷ 3
の様に割り切れない計算が含まれる場合、計算リソースの関係で 正確に計算ができない
11.
結局、有効桁数で丸めるしかないんや 乗算、除算が含まれる場合は正確に計算できないので、必要な有効桁数で丸め処理を実施 する必要がある
12.
floatはダメな子なの?? Decimalも最終的に丸め処理が必要になるのであれば、floatで計算して最後に丸めても結果 は同じになる。 小数計算が加算、減算のみの場合はDecimalの場合は丸め処理が不要となるため正確に計 算が可能 ただし、乗算、除算が含まれる場合はDecimalも丸め処理が必要となるため、 floatで処理した場合とほぼ同じ結果になる(有効桁数によっては結果が変わる)
13.
floatはダメな子ではなかった 丸め処理を実施すればfloatでも十分実用可能 さらに、Decimalよりもfloatの方が計算時間が短いため、通常利用ではfloatで全然 問題ない
14.
まとめ Pythonで小数を扱う場合は、誤差が発生することを念頭に、有効桁数での丸め処理を実施 すること Decimalを使うと小数における加算、減算を誤差なく行うことができる Decimalでの乗算、減算では誤差が発生するため、丸め処理が必要 floatでも十分実用可能、だたし小数の加減乗除全てにおいて丸め処理が必要になる
15.
おまけ -fractions- 有理数計算ができる 有理数計算とは小数を整数の割り算として処理すること fractionsを利用すると計算過程での誤差がない状態で計算することが可能 ただし、最終的にfloat等に変換する際に丸め処理で誤差が発生する float、Decimalと比較すると処理時間がめちゃくちゃ遅い
Download now