[问题]复数 浮点数 有理数的一些问题

楼主: LessonWang (橘白Cat)   2017-07-02 11:41:47
如题 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
楼主: LessonWang (橘白Cat)   2017-07-02 11:58:00
我觉得我应该换个方式问有没有任何函数或模组可以判断某个数值是属于超越数
作者: Django (Cython)   2017-07-02 15:00:00
楼主: LessonWang (橘白Cat)   2017-07-02 15:22:00
后来看sympy 已经有很强大的代数运算了 就不用手刻了xdd

Links booklink

Contact Us: admin [ a t ] ucptt.com