Java 如何将中的十进制值转换为分数值?
例外输出:1/4,1/2,3/4,1,5/4,3/2 但是我的输出是十进制的。请帮助如何仅以分数形式打印Java 如何将中的十进制值转换为分数值?,java,Java,例外输出:1/4,1/2,3/4,1,5/4,3/2 但是我的输出是十进制的。请帮助如何仅以分数形式打印 import java.util.*; 公共课你好{ 公共静态void main(字符串[]args){ //你的代码在这里 扫描仪s=新的扫描仪(System.in); int n=s.nextInt(); 双d=1/4.0,和=0; for(int i=0;i编写了一个方法,可以将双精度数字转换为分数。使用此方法将其转换并打印如下: import java.util.Scanner;
import java.util.*;
公共课你好{
公共静态void main(字符串[]args){
//你的代码在这里
扫描仪s=新的扫描仪(System.in);
int n=s.nextInt();
双d=1/4.0,和=0;
for(int i=0;i编写了一个方法,可以将双精度数字转换为分数。使用此方法将其转换并打印如下:
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int n=s.nextInt();
double d=1/4.0,sum=0;
for(int i=0;i<n;i++) {
sum+=d;
System.out.print(toFraction(sum)+" ");
}
}
static String toFraction(double x) {
int w = (int) x;
int n = (int) (x * 64) % 64;
int a = n & -n;
return n == 0 ? w+"" : (w * (64 / a) + (n / a)) + "/" + 64 / a;
}
}
import java.util.Scanner;
公开课考试{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
int n=s.nextInt();
双d=1/4.0,和=0;
对于(inti=0;i以字符串的形式进行输入,因此它将以所需的格式进行输入,并将其拆分为“/”即someString.spit(“/”)。
之后,将一个作为循环,取两个数字,并将其存储在两个不同的变量中。
然后对两者进行除法,并使用“/”打印介于两者之间。1/4.0
计算为0.25
。这只是一个表达式。分数是否总是1/4的倍数?如果是这样,将大大简化事情,但基本上你必须分别存储分子和分母,并一起打印。如果你真的需要将小数转换回分数,看看这里的答案最初我的值是1/4每次循环执行前,我想在总和上加1/4。请检查是否存在问题:@Satyanarayanaredytadi您是否得到了解决方案?它没有打印我提到的上述输出。先生,您能帮我吗me@SatyanarayanareddyTadi我少了一个角色,我有e编辑了代码,请立即检查
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int n=s.nextInt();
double d=1/4.0,sum=0;
for(int i=0;i<n;i++) {
sum+=d;
System.out.print(toFraction(sum)+" ");
}
}
static String toFraction(double x) {
int w = (int) x;
int n = (int) (x * 64) % 64;
int a = n & -n;
return n == 0 ? w+"" : (w * (64 / a) + (n / a)) + "/" + 64 / a;
}
}
public class NewClass {
public static void main(String[] args) {
System.out.println(convertype(0.75));
}
public static String convertype(double decimal){
int digitsAfterPoint = String.valueOf(decimal).length() - String.valueOf(decimal).indexOf('.')+1; // get the count of digits after the point // for example 0.75 has two digits
BigInteger numerator = BigInteger.valueOf((long)(decimal*Math.pow(10, digitsAfterPoint))); // multiply 0.75 with 10^2 to get 75
BigInteger denominator = BigInteger.valueOf((long)(Math.pow(10, digitsAfterPoint))); // 10^2 is your denominator
int gcd = numerator.gcd(denominator).intValue(); // calculate the greatest common divisor of numerator and denominator
if (gcd > 1 ){ // gcd(75,100) = 25
return String.valueOf(numerator.intValue()/gcd) +" / " + String.valueOf(denominator.intValue()/gcd); // return 75/25 / 100/25 = 3/4
}
else{
return String.valueOf(numerator) +" / " + String.valueOf(denominator); // if gcd = 1 which means nothing to simplify just return numerator / denominator
}
}
}