[問題]複數 浮點數 有理數的一些問題
如題 python新手發問
學了python一陣子之後
知道浮點數相減會有誤差
例如
0.9-0.8
結果是0.099999999999998
後來改良了一下
(0.9*10-0.8*10)/10
才是0.1
可是每次要這樣做很麻煩
於是有decimal模組
可是遇到複數又沒轍了
例如
0.9j-0.8j
也不會出現0.1j
就算用from decimal import Decimal as dc
complex(0,dc('0.9'))-complex(0,dc('0.8'))
也一樣不會出現0.1j
只能用complex(0,dc('0.9')-dc('0.8'))
後來只好自己手刻一個類別繼承complex
而且想到complex無法做有理數的運算
於是結合decimal fraction complex三種概念
做一個簡單的類別
但是有個問題是要如何使得運算結果是超越數時能保留表達式而不要用浮點數呈現呢?
我的code如下
https://repl.it/JKUH/35
-----
Sent from JPTT on my Asus ASUS_Z00UD.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.72.40
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1498966911.A.1AF.html
※ 編輯: LessonWang (110.28.72.40), 07/02/2017 11:49:17
→
07/02 11:58, , 1F
07/02 11:58, 1F
→
07/02 11:58, , 2F
07/02 11:58, 2F
→
07/02 11:58, , 3F
07/02 11:58, 3F
推
07/02 15:00, , 4F
07/02 15:00, 4F
→
07/02 15:00, , 5F
07/02 15:00, 5F
d大 已看過這個官方文件了xd
沒有頭緒
※ 編輯: LessonWang (110.28.72.40), 07/02/2017 15:02:04
→
07/02 15:22, , 6F
07/02 15:22, 6F
→
07/02 15:22, , 7F
07/02 15:22, 7F