「java分数参数」java输出分数形式
今天给各位分享java分数参数的知识,其中也会对java输出分数形式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java的分数运算问题
- 2、关于JAVA的一道程序题,大概是约分
- 3、JAVA中有分数数据类型吗?
- 4、用java怎么写分数?
- 5、JAVA写一个函数,由参数传递一个百分制的分数,返回这个分数对应的中文分数?
- 6、JAVA 中 ,成绩分级问题
java的分数运算问题
import java.util.Scanner;
public class Du{
public static void main(String args[]) throws Exception{
System.out.println("Please input a string in format xx/xx");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
String[] ary = input.split("/");
int numerator = Integer.parseInt(ary[0].trim());
int denominator = Integer.parseInt(ary[1].trim());
Fraction fra = new Fraction(numerator, denominator);
Fraction fra2 = new Fraction(15, 7);
Fraction fra3 = new Fraction(13, 12);
fra2.multiple(fra);//测试乘法
System.out.println("15/7 * 1/3 = " + fra2.toString());
fra.add(fra3);//测试加法
System.out.println("1/3 + 13/12 = " + fra.toString());
}
}
class Fraction{
private int numerator;//分子
private int denominator;//分母
public Fraction(int numerator, int denominator) throws Exception{
if(denominator == 0){//分母为0,出错
throw new Exception("Denominator can't be ZERO!");
}
this.numerator = numerator;
this.denominator = denominator;
}
public void multiple(Fraction fract2){//分数相乘
numerator *= fract2.numerator;//分子相乘
denominator *= fract2.denominator;//分母相乘
//结果约分
int lcd = getLCD(numerator, denominator);//最大公约数
numerator = numerator / lcd;
denominator = denominator /lcd;
}
public void add(Fraction fract2){
int gcm = getGCM(denominator, fract2.denominator);//最小公倍数作为分母
numerator *= gcm / denominator;//分子通分
fract2.numerator *= gcm / fract2.denominator;//第二个分子通分
numerator += fract2.numerator;//分子相加
denominator = gcm;//分母为最小公倍数
//约分
int lcd = getLCD(numerator, denominator);
if(lcd != 1){
numerator = numerator / lcd;
denominator = denominator / lcd;
}
}
public String toString(){
return numerator + "/" + denominator;
}
//求最大公约数
public static int getLCD(int num1, int num2){
int max = Math.max(num1, num2);
int min = Math.min(num1, num2);
while(max % min != 0){
int temp = max;
max = min;
min = temp % min;
}
return min;
}
//求最小公倍数
public static int getGCM(int num1, int num2){
return num1 * num2 /getLCD(num1, num2);
}
}
-----------------
Please input a string in format xx/xx
1/3
15/7 * 1/3 = 5/7
1/3 + 13/12 = 17/12
所有分数都可以通过乘10得倍数而达到分子和分母都是int类型的,所以没有问题的。
关于JAVA的一道程序题,大概是约分
根据题意可得如下代码:
public class Fraction {
private int numerator;
private int denominator;
public Fraction(int x, int y){
this.numerator = x;
this.denominator = y;
}
public Fraction(){
}
public String toString(){
return this.numerator+"/"+this.denominator;
}
public void Simple(){
int i = this.numerator;
if (i this.denominator){
i = this.denominator;
}
for (; i = 1; --i){
if (this.numerator%i == 0 this.denominator%i == 0)break;
}
this.numerator /= i;
this.denominator /= i;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Fraction f = new Fraction(48, 72);
f.Simple();
System.out.println(f.toString());
}
}
JAVA中有分数数据类型吗?
没有分数类型,而且在计算中如果出现较长的小数或者无限循环、不循环小数,都会丢失精度,每个数据类型都有自己的精度范围,超出部分就丢失了
用java怎么写分数?
你可以写个分数类,下面是参考:
public class Fraction {
private Integer numerator; // 分子;
private Integer denominator; // 分母
/**
* 构造器
*/
public Fraction() {
}
public Fraction(Integer numerator, Integer denominator) {
this.numerator = numerator;
this.denominator = denominator;
}
public Integer getDenominator() {
return denominator;
}
public void setDenominator(Integer denominator) {
this.denominator = denominator;
}
public Integer getNumerator() {
return numerator;
}
public void setNumerator(Integer numerator) {
this.numerator = numerator;
}
/**
* 求最大公约数
*
* @return
*/
private int getGCD(int a, int b) {
int max = Math.max(a, b);
int min = Math.min(a, b);
int mod = max % min;
if (mod == 0) {
return min;
} else {
return this.getGCD(mod, min);
}
}
/**
* 简化和约分
*
* @return
*/
public Fraction simplify() {
// 格式化
if (this.numerator == 0) {
this.denominator = null;
return this;
} else if (this.denominator * this.numerator 0
this.denominator 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = Math.abs(this.numerator);
return this;
} else if (this.denominator 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = -this.numerator;
return this;
}
// 约分
int gcd = this.getGCD(Math.abs(denominator), Math.abs(numerator));
if (gcd == 1) {
return this;
} else {
this.denominator = this.denominator / gcd;
this.numerator = this.numerator / gcd;
return this;
}
}
/**
* 加法
*
* @param fraction
* @return
*/
public Fraction add(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
+ this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}
/**
* 减法
*
* @param fraction
* @return
*/
public Fraction minus(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
- this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}
/**
* 乘法
*
* @param fraction
* @return
*/
public Fraction multiply(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0 || fraction.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator
* fraction.getDenominator();
Integer resultNumerator = this.numerator * fraction.getNumerator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}
/**
*除法
*
* @param fraction
* @return
*/
public Fraction divide(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator * fraction.getNumerator();
Integer resultNumerator = this.numerator * fraction.getDenominator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}
@Override
public String toString() {
return "[分子]" + this.numerator + "-[分母]" + this.denominator;
}
/**
* 测试
*
* @param args
*/
public static void main(String[] args) {
Fraction f1 = new Fraction(1, 2);
Fraction f2 = new Fraction(2, 4);
System.out.println(f1);
System.out.println(f2);
System.out.println(f2.simplify());
System.out.println(f1.add(f2));
System.out.println(f1.minus(f2));
System.out.println(f1.multiply(f2));
System.out.println(f1.divide(f2));
}
}
JAVA写一个函数,由参数传递一个百分制的分数,返回这个分数对应的中文分数?
package s01;
public class s001 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stu
System.out.println("hello world!\n"+ToCH(45));
}
public static String ToCH(int intInput) {
String si = String.valueOf(intInput);
String sd = "";
if (si.length() == 1) // 个
{
sd += GetCH(intInput);
return sd;
} else if (si.length() == 2)// 十
{
if (si.substring(0, 1).equals("1"))
sd += "十";
else
sd += (GetCH(intInput / 10) + "十");
sd += ToCH(intInput % 10);
} else if (si.length() == 3)// 百
{
sd += (GetCH(intInput / 100) + "百");
if (String.valueOf(intInput % 100).length() 2)
sd += "零";
sd += ToCH(intInput % 100);
} else if (si.length() == 4)// 千
{
sd += (GetCH(intInput / 1000) + "千");
if (String.valueOf(intInput % 1000).length() 3)
sd += "零";
sd += ToCH(intInput % 1000);
} else if (si.length() == 5)// 万
{
sd += (GetCH(intInput / 10000) + "万");
if (String.valueOf(intInput % 10000).length() 4)
sd += "零";
sd += ToCH(intInput % 10000);
}
return sd;
}
private static String GetCH(int input) {
String sd = "";
switch (input) {
case 1:
sd = "一";
break;
case 2:
sd = "二";
break;
case 3:
sd = "三";
break;
case 4:
sd = "四";
break;
case 5:
sd = "五";
break;
case 6:
sd = "六";
break;
case 7:
sd = "七";
break;
case 8:
sd = "八";
break;
case 9:
sd = "九";
break;
default:
break;
}
return sd;
}
}
JAVA 中 ,成绩分级问题
(1)//通过控制台输入分数public static void main(String[] args){System.out.println("请输入分数:"); Scanner input=new Scanner(system.in);int i=input.nextInt();i=i/10;switch(i){ case 10:case 9: System.out.println("A"); break;case 8: System.out.println("B"); break;case 7: System.out.println("C"); break;case 6: System.out.println("D"); break;default: if(i=0 i=10){ System.out.println("E"); }else{ System.out.println("输入的数不是有效分数"); } break; }} 或者switch (i) { case 100: case 90: System.out.println("分数是" + i + " 等级为A"); break; case 80: System.out.println("分数是" + i + " 等级为B"); break; case 70: System.out.println("分数是" + i + " 等级为C"); case 60:System.out.println("分数是" + i + " 等级为D"); default: if(i=0 i=10){ System.out.println("分数是" + i + " 等级为E"); }else{ System.out.println("输入的数不是有效分数"); }break; }
(2)利用教材上的Scanner类写出完整程序和运行结果(截屏)不需要打包
(3)从键盘获取数据的办法一:利用命令行参数获取数据。其中参数之间用空格分隔。public static void main(String args[])方法中参数args是一个字符串数组,命令行参数被系统以String数组的方式传递给应用程序中的main方法,由args接收,命令行参数使用格式如下:
java 类名 参数1 参数2 ...
其中,参数之间用空格隔开,如果某个参数本身含有空格,则可以将参数用一对引号括起来。
总结:只做不想的 (一定不会成功的,所有的负出都是浪费).只想不做的 (一定不会成功的,但也没有任何负出).敢想敢做的 (不一定会有成功,但有可能会成功).真正成功的 (把成功做为起点,而不是终点,否则成功就变成失败)
java分数参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java输出分数形式、java分数参数的信息别忘了在本站进行查找喔。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。