[問題]複數 浮點數 有理數的一些問題

看板Python作者 (橘白Cat)時間8年前 (2017/07/02 11:41), 8年前編輯推噓1(106)
留言7則, 2人參與, 最新討論串1/1
如題 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, , 5F
希望對您有幫助(?)
07/02 15:00, 5F
d大 已看過這個官方文件了xd 沒有頭緒 ※ 編輯: LessonWang (110.28.72.40), 07/02/2017 15:02:04

07/02 15:22, , 6F
後來看sympy 已經有很強大的代數運算了 就不用手刻了x
07/02 15:22, 6F

07/02 15:22, , 7F
dd
07/02 15:22, 7F
文章代碼(AID): #1PM6j_6l (Python)