我必须遗漏某些内容,但当我尝试从double
值0.1
创建BigRational
时,它会给我一个非常长的无意义值。将其转换回0.0
:
double d = 0.1; // 0.1
BigRational br = new BigRational(d); // 3602879701896397/71213961919824440...
double d2 = (double)br; // 0.0
我错过了什么?我知道0.1在System.Double
中无法准确表示,但肯定BigRational
可以近似得到它以便往返它吗?
答案 0 :(得分:1)