作者LessonWang (橘白Cat)
看板Python
标题[问题]复数 浮点数 有理数的一些问题
时间Sun Jul 2 11:41:47 2017
如题 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://webptt.com/cn.aspx?n=bbs/Python/M.1498966911.A.1AF.html
※ 编辑: LessonWang (110.28.72.40), 07/02/2017 11:49:17
1F:→ LessonWang: 我觉得我应该换个方式问 07/02 11:58
2F:→ LessonWang: 有没有任何函数或模组 07/02 11:58
3F:→ LessonWang: 可以判断某个数值是属於超越数 07/02 11:58
5F:→ Django: 希望对您有帮助(?) 07/02 15:00
d大 已看过这个官方文件了xd
没有头绪
※ 编辑: LessonWang (110.28.72.40), 07/02/2017 15:02:04
6F:→ LessonWang: 後来看sympy 已经有很强大的代数运算了 就不用手刻了x 07/02 15:22
7F:→ LessonWang: dd 07/02 15:22