several weeks ago, you completed a python project that defined a rational number class. as a recap, one shortcoming of computers is the accurate representation of floating-point numbers. any positive integer can be easily represented by a computer in binary: * 2 can be represented as 10 * 42 can be represented as 101010* 1000 can be represented as 1111101000 some floating-point numbers are also easy to represent in binary: * 5 can be represented as 0.1 *125 can be represented as 0.001 *109375 can be represented as 0.000111but consider the number 0.1, a simple number to represent in base-10. the binary equivalent of this number is 0.0001100110011001100110011001100110011001100110011001100... (the sequence continues forever). this causes some unexpected behavior at times. for example, if you try to add 0.1 0.2 in python (or c or java), the result of the computation will display as 0.30000000000000004. this is clearly a challenge for accuracy in computations, and there is unfortunately no built-in way to express these floating-point numbers in fractional form. so instead, you'll create one! again! in java!