假设我们有0.33,我们需要输出"1/3".
如果我们有"0.4",我们需要输出"2/5".
我们的想法是让人们可读,让用户理解"y部分中的x部分",作为理解数据的更好方式.
我知道百分比是一个很好的替代品,但我想知道是否有一个简单的方法来做到这一点?
例如,假设您有一个浮点数列表,它大约是常见数量的倍数
2.468,3.700,6.1699
这大约是1.234的倍数.您如何描述这种"近似gcd",您将如何进行计算或估算呢?
与我对这个问题的回答密切相关.
language-agnostic algorithm math floating-point greatest-common-divisor
我需要将十进制转换为分数.它很容易转换为10英尺.
1.5 => 15/10
Run Code Online (Sandbox Code Playgroud)
这可以通过以下代码完成:
public class Rational {
private int num, denom;
public Rational(double d) {
String s = String.valueOf(d);
int digitsDec = s.length() - 1 - s.indexOf('.');
int denom = 1;
for (int i = 0; i < digitsDec; i++) {
d *= 10;
denom *= 10;
}
int num = (int) Math.round(d);
this.num = num;
this.denom = denom;
}
public Rational(int num, int denom) {
this.num = num;
this.denom = denom;
}
public String toString() {
return …Run Code Online (Sandbox Code Playgroud) 我可以使用什么算法将十进制数转换并输入到c ++中的分数形式.例如,如果我输入1.25,我希望转换为输出为1 1/4.