在Java中,我试图找到一种方法将浮点数转换为分数字符串.例如:
float num = 1.33333;
String numStr = Convert(num); // Should return "1 1/3"
float num2 = 1.333;
String numStr2 = Convert(num2); // Should also return "1 1/3"
float num3 = 0.5;
String numStr3 = Convert(num3); // Should return "1/2"
float num4 = 2.25;
String numStr4 = Convert(num4); // Should return "2 1/4"
Run Code Online (Sandbox Code Playgroud)
有任何想法如何用Java做到这一点?
如何编写一个算法,给定一个浮点数,并尝试使用分子和分母(两者都限制在 Java 字节的范围内)尽可能准确地表示?
原因是 I2C 设备需要分子和分母,而给它一个浮点数是有意义的。
例如,3.1415926535...将导致245/78, 而不是314/100或22/7。
就效率而言,在程序开始时会调用大约三次,但之后就不再调用了。所以慢的算法也不算太糟糕。