java定义新运算a⊕b一个实现常用数学运算的类MyMath

用java编写程序:定义一个实现常用数学运算的类MyMath,类中提供max()、min()、sum()、average()四个静态方法,每个方法带有三个整型参数,分别实现对三个整数求取最大值、最小值、和值及平均值的运算。在主类中对任意输入的三个正整数,调用MyMath类的四个静
var sogou_ad_id=731545;
var sogou_ad_height=90;
var sogou_ad_width=980;java常用操作方法(四)数学计算操作 MathUtil -
- ITeye技术网站
博客分类:
package com.jinqiao.
import java.math.BigD
public class MathUtil {
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。
private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化
private MathUtil() {
* 提供精确的加法运算。
* @param v1
*&&&&&&&&&&& 被加数
* @param v2
*&&&&&&&&&&& 加数
* @return 两个参数的和
public static String add(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return String.valueOf(b1.add(b2));
* 提供精确的减法运算。
* @param v1
*&&&&&&&&&&& 被减数
* @param v2
*&&&&&&&&&&& 减数
* @return 两个参数的差
public static String sub(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return String.valueOf(b1.subtract(b2));
* 提供精确的乘法运算。
* @param v1
*&&&&&&&&&&& 被乘数
* @param v2
*&&&&&&&&&&& 乘数
* @return 两个参数的积
public static String mul(String v1, String v2) {
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return String.valueOf(b1.multiply(b2));
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。
* @param v1
*&&&&&&&&&&& 被除数
* @param v2
*&&&&&&&&&&& 除数
* @return 两个参数的商
public static String div(String v1, String v2) {
return div(v1, v2, DEF_DIV_SCALE);
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
* @param v1
*&&&&&&&&&&& 被除数
* @param v2
*&&&&&&&&&&& 除数
* @param scale
*&&&&&&&&&&& 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
public static String div(String v1, String v2, int scale) {
if (scale & 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
BigDecimal b1 = new BigDecimal(v1);
BigDecimal b2 = new BigDecimal(v2);
return String.valueOf(b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP));
* 提供精确的小数位四舍五入处理。
* @param v
*&&&&&&&&&&& 需要四舍五入的数字
* @param scale
*&&&&&&&&&&& 小数点后保留几位
* @return 四舍五入后的结果
public static String round(String v, int scale) {
if (scale & 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
BigDecimal b = new BigDecimal(v);
BigDecimal one = new BigDecimal("1");
return String.valueOf(b.divide(one, scale, BigDecimal.ROUND_HALF_UP));
浏览: 44469 次
来自: 上海扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
SUM,AVERAGE,MAX,MIN,PRODUCT,CUONT,RANK,IF,SUMIF,COUNTIF怎么读呀!
JanJun0624
扫二维码下载作业帮
1.75亿学生的选择
SUM(桑母) 求和函数;AVERAGE(哎五瑞之) 求平均数函数;MAX(麦克斯) 最大值函数;MIN(民) 最小值函数;PRODUCT(普若达克特) 求积函数;COUNT(考恩特) 计数函数;RANK(软克) 排序函数;IF(衣服) 条件函数;SUMIF(组合着念)
带条件求和;COUNTIF(组合着念) 带条件计数;大概就这样吧.如果你说的是读音的话.最直白的写法.如果是用法,建议查一下EXCEL帮助,这样你会记忆更深刻些.
也可以告诉我,我给你举简单的例子.
为您推荐:
其他类似问题
扫描下载二维码一个数学概念-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
一个数学概念
来源:用户
发表时间: 16:28:44 责任编辑:王亮字体:
婚姻---&一个数学概念
家政学校的最后一门课是《婚姻有经营和创意》, 主讲老师是学校特地聘请的一位研究婚姻问题的教授。他走进教室,把S手携带的一迭图表煸诤诎迳希缓螅瓶焱迹厦嬗妹市粗恍凶郑夯橐龅某晒θ【鲮读降悖一、找个好人;二、自己做一个好人。就这么简单,至於其他的秘决,我认为如果不是江湖偏方,也至少是些老生常谈。教授说。这时台下嗡嗡作响因为下面有许多学生是已婚人士。不一会儿,终於有一位三十多岁的女子站了起来,说:"如果这两条没有做到呢?"教授翻开焱嫉牡诙牛担"那就变成4条了。"一、容忍,帮助,帮助不好仍然容忍。二、使容忍变成一种习惯。三、在习惯中养成傻瓜的品性。四、做傻瓜,K永远做下去。教授还未把这4条念完,台下就喧哗起来,有的说不行,有的说这根本做不到。等大家静下来,教授说:"如果这4条做不到,你又想有一个稳固的婚姻,那你就得做到以下16条。"接著教授翻开第三5焱肌一、不同时发脾气。二、除非有紧急事件,否则不要大声吼叫。三、词,让对方A。四、当天的当天化解。五、澈蠡啬锛一蛲獬龅氖奔洳灰8小时。六、批评时话要出於爱。七、S时准备认错道歉.八、谣言传来时,把它当成玩笑。九、每月给对方一晚自由的时间。十、不要带著气上床。 十一、他或她回家时,你一定要在家。十二、对方不让你打扰时,坚持不去打扰。十三、电话铃响时的时候,让对方去接。十四、口袋有多少钱要S时报帐。十五、坚持消灭没有钱的日子。十六、给你父母的钱一定要比给对方父母的钱少。教授念完 ,有些人笑了,有些人则叹起气来。教授听了一会儿,说:"如果大家对这16条感到失望的话,那你只有做好下面的256条了,总之,两个人相处的理论是一个几何级数理论,它总是在前面那个数字的基础上进行二次方。"接著教授翻开焱嫉牡谒囊常庖灰骋巡辉偈怯妹适樾矗怯酶直剩256条,密密麻麻。教授说:"婚姻到这一地步就已经很危险了。"这时台下响起了更强烈的喧哗.不过在教授宣严驴蔚氖焙颍械娜俗谀嵌挥卸橇飨铝死帷爱一个人,要了解,也要开解;要道歉,也要道谢;要认错,也要改错;要体贴,也要体谅;要接受,而不是忍受;是宽容,而不是纵容;是支持,而不是支配;是慰问,而不是质问;是倾诉,而不是控诉;是难忘,而不是遗忘;是彼此交流,而不是凡事交代;是为对方默默祈求,而不是向对方诸多要求;可以浪漫,但不要浪费;可以S时牵手,但不要S便分手。!吃得好,穿得好,不如夫妻同到老.. 只要嫁得好,不必嫁的早,幸福甜到老。生活的目的就是让自己的过的快乐 不在乎钱的多少 在於过的好不好有没有人和你分享与共苦人生不过如此短短 你已经浪费多少了 现在做一切都来的及
相关信息 [
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号一 Object 老祖宗
java.lang.Object
1. 所有的类直接或者间接继承父类 Java认为所有的对象都具备一些基本的共性内容 这些内容可以不断的向上抽取 最终就抽取到了一个最顶层的类中(Object) 该类中定义的就是所有对象都具备的功能
2. 具体方法:
boolean equals(Object obj): 用于比较两个对象是否相等 其实内部比较的就是两个对象地址
String toString(): 将对象变成字符串 默认返回的格式: 类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 为了对象对应的字符串内容有意义 可以通过复写 建立该类对象自己特有的字符串表现形式
Class getClass(): 获取任意对象运行时的所属字节码文件对象
int hashCode(): 返回该对象的哈希码值 支持此方法是为了提高哈希表的性能
通常equals, toString, hashCode在应用中都会被复写 建立具体对象的特有的内容
二 String 字符串类
java.lang.String
1. java中用String类进行描述 对字符串进行了对象的封装 这样的好处是可以对字符串这种常见数据进行方便的操作 对象封装后 可以定义N多属性和行为
2. 特点: 字符串一旦被初始化 就不可以被改变 存放在方法区中的常量池中
3. 具体方法:
1& 构造方法 将字节数组或者字符数组转成字符串
String s1 = new String(); //创建了一个空内容的字符串
String s2 = null; //s2没有任何对象指向 是一个null常量值
String s3 = ""; //s3指向一个具体的字符串对象 只不过这个字符串中没有内容
String s4 = new String("abc");
String s5 = "abc"; //一般用此写法
new String(char[]); //将字符数组转成字符串
new String(char[], offset, count); //将字符数组中的一部分转成字符串
2& 一般方法
length(); //获取字符串的长度
char charAt(int index); //指定位置的字符
int indexOf(int ch); //返回第一次找到的字符角标 如果不存在返回-1
int indexOf(int ch, int fromIndex); //返回从指定位置开始第一次找到的角标 如果不存在返回-1
int indexOf(String str); // 返回第一次找到的字符串角标 如果不存在返回-1
int indexOf(String str, int fromIndex);
int lastIndexOf(int ch);
int lastIndexOf(int ch, int fromIndex);
int lastIndexOf(String str);
int lastIndexOf(String str, int fromIndex);
String substring(int start); //从start位开始 到length()-1为止
String substring(int start, int end); //从start开始到end为止 //包含start位 不包含end位
substring(0, str.length()); //获取整串
boolean contains(String substring); //字符串中包含指定的字符串吗
boolean startsWith(string); //字符串是否以指定字符串开头啊
boolean endsWith(string); //字符串是否以指定字符串结尾啊
boolean equals(string); //覆盖了Object中的方法 判断字符串内容是否相同
boolean equalsIgnoreCase(string) ; //判断字符串内容是否相同 忽略大小写
//可以通过字符串中的静态方法 将字符数组转成字符串
static String copyValueOf(char[] );
static String copyValueOf(char[], int offset, int count);
static String valueOf(char[]);
static String valueOf(char[], int offset, int count);
//将基本数据类型或者对象转成字符串
static String valueOf(char);
static String valueOf(boolean);
static String valueOf(double);
static String valueOf(float);
static String valueOf(int);
static String valueOf(long);
static String valueOf(Object);
//将字符串转成大小写
String toLowerCase(); //转小写
String toUpperCase(); //转大写
//将字符串转成数组
char[] toCharArray(); //转成字符数组
byte[] getBytes(); //可以加入编码表 转成字节数组
//将字符串转成字符串数组 切割方法
String[] split(分割的规则-字符串);
//将字符串进行内容替换 注意: 修改后变成新字符串 并不是将原字符串直接修改
String replace(oldChar, newChar);
String replace(oldstring, newstring);
String concat(string); //对字符串进行追加
String trim(); //去除字符串两端的空格
int compareTo(); //如果参数字符串等于此字符串 则返回值 0 如果此字符串按字典顺序小于字符串参数 则返回一个小于 0 的值 如果此字符串按字典顺序大于字符串参数 则返回一个大于 0 的值
三 StringBuffer 字符串缓冲区
java.lang.StringBuffer
1. 构造一个其中不带字符的字符串缓冲区 初始容量为16个字符
1& 可以对字符串内容进行修改
2& 是一个容器
3& 是可变长度的
4& 缓冲区中可以存储任意类型的数据
5& 最终需要变成字符串
3. 具体方法:
StringBuffer append(data); 在缓冲区中追加数据 追加到尾部
StringBuffer insert(index, data); 在指定位置插入数据
StringBuffer delete(start, end); 删除从start至end-1范围的元素
StringBuffer deleteCharAt(index); 删除指定位置的元素
//sb.delete(0, sb.length()); 清空缓冲区
StringBuffer replace(start, end, string); 将start至end-1替换成string
void setCharAt(index, char); 替换指定位置的字符
void setLength(len); 将原字符串置为指定长度的字符串
//查找 (查不到返回-1)
int indexOf(string); 返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(string,int fromIndex); 从指定位置开始查找字符串
int lastIndexOf(string); 返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(string, int fromIndex); 从指定的索引开始反向搜索
//获取子串
string substring(start); 返回start到结尾的子串
string substring(start, end); 返回start至end-1的子串
StringBuffer reverse(); 字符串反转
四 StringBuilder 字符串缓冲区
java.lang.StringBuilder
1. JDK1.5出现StringBuiler 构造一个其中不带字符的字符串生成器 初始容量为 16 个字符 该类被设计用作StringBuffer的一个简易替换 用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)
2. 具体方法: 和StringBuffer一样
3. StringBuffer 和 StringBuilder 的区别:
StringBuffer线程安全
StringBuilder线程不安全
单线程操作 使用StringBuilder 效率高
多线程操作 使用StringBuffer 安全
五 Integer int对象包装类
java.lang.Integer
1. 数字格式的字符串转成基本数据类型的方法
1& 将该字符串封装成了Integer对象 并调用对象的方法intValue();
2& 使用Integer.parseInt(numstring); 不用建立对象 直接类名调用
2. 将基本类型转成字符串
1& Integer中的静态方法 String toString(int);
2& int + "";
3. 将一个十进制整数转成其他进制
1& 转成二进制: toBinaryString
2& 转成八进制: toOctalString
3& 转成十六进制: toHexString
4& toString(int num, int radix);
4. 将其他进制转换十进制: parseInt(string, radix); //将给定的数转成指定的基数进制
5. 在jdk1.5版本后 对基本数据类型对象包装类进行升级 在升级中 使用基本数据类型对象包装类可以像使用基本数据类型一样 进行运算
Integer i = new Integer(4); //1.5版本之前的写法
Integer i = 4; //自动装箱 1.5版本后的写法
i = i + 5;
//i对象是不能直接和5相加的 其实底层先将i转成int类型 在和5相加 而转成int类型的操作是隐式的 自动拆箱: 拆箱的原理就是i.intValue(); i+5运算完是一个int整数 如何赋值给引用类型i呢? 其实有对结果进行装箱
Integer c = 127;
Integer d = 127;
System.out.println(c = = d); //true
//在装箱时 如果数值在byte范围之内 那么数值相同 不会产生新的对象 也就是说多个数值相同的引用指向的是同一个对象
六 System 系统类
java.lang.System
属性和行为都是静态的
long currentTimeMillis(); //返回当前时间毫秒值
exit();& //退出虚拟机
Properties getProperties(); //获取当前系统的属性信息
Properties prop = System.getProperties(); //获取系统的属性信息 并将这些信息存储到Properties集合中
System.setProperty("myname","祎哥哥"); //给系统属性信息集添加具体的属性信息
String name = System.getProperty("os.name"); //获取指定属性的信息
七 Runtime 运行时环境类
java.lang.Runtime
类中没有构造方法 不能创建对象
但是有非静态方法 说明该类中应该定义好了对象 并可以通过一个static方法获取这个对象 用这个对象来调用非静态方法 这个方法就是 static Runtime getRuntime(); (单例设计模式)
RuntimeDemo {
public static void main(String[] args) throws Exception {
Runtime r = Runtime.getRuntime();
Process p = r.exec("notepad.exe SystemDemo.java"); //运行指定的程序
Thread.sleep(4000);
p.destroy(); //杀掉进程
八 Math 数学运算工具类
java.util.Math
用于数学运算的工具类 属性和行为都是静态的 该类是final不允许继承
static double ceil(double a); //返回大于指定数值的最小整数
static double floor(double a); //返回小于指定数值的最大整数
static long round(double a); //四舍五入成整数
static double pow(double a, double b); //a的b次幂
static double random(); //返回0~1的伪随机数
九 Date 日期类
java.util.Date
日期类 月份从0-11(这就是老外 奇奇怪怪)
//日期对象转成毫秒值
Date d = new Date();
long time1 = d.getTime();
long time2 = System.currentTimeMillis(); //毫秒值
//毫秒值转成具体的日期
long time = 2l;
Date d = new Date();
d.setTime(time);
//将日期字符串转换成日期对象 使用的就是DateFormat方法中的 Date parse(String source);
public static void method() throws Exception {
& & String str_time = "";
& & DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作为可以指定用户自定义的格式来完成格式化
& & Date d = df.parse(str_time);
//将日期对象转换成字符串的方式 DateFormat类中的format方法
//创建日期格式对象
DateFormat df = new SimpleDateFormat(); //该对象的建立内部会封装一个默认的日期格式 11-12-1 下午1:48
//如果想要自定义日期格式的话 可使用SimpleDateFormat的构造函数 将具体的格式作为参数传入到构造函数中 必须要参与格式对象文档
df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//调用DateFormat中的format方法 对已有的日期对象进行格式化
String str_time = df.format(d);
十 Calendar 日历类
ava.util. Calendar
public static void method(){
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1) + "月"
+ getNum(c.get(Calendar.DAY_OF_MONTH)) + "日"
+ "星期" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
public static String getNum(int num){
return num & 9 ? num + "" : "0" +
public static String getWeek(int index){
//查表法 建立数据的对应关系
//最好 数据个数是确定的 而且有对应关系 如果对应关系的一方 是数字 而且可以作为角标 那么可以通过数组来作为表
String[] weeks = {"","日","一","二","三","四","五","六"};
return weeks[index];
十一 File 文件类
1. 将文件系统中的文件和文件夹封装成了对象 提供了更多的属性和行为可以对这些文件和文件夹进行操作 这些是流对象办不到的 因为流只操作数据
2. 具体方法:
boolean createNewFile(); 在指定目录下创建文件 如果该文件已存在 则不创建 而对操作文件的输出流而言 输出流对象已建立 就会创建文件 如果文件已存在 会覆盖 除非续写
boolean mkdir(); 创建此抽象路径名指定的目录
boolean mkdirs(); 创建多级目录
//删除 注意: 在删除文件夹时 必须保证这个文件夹中没有任何内容 才可以将该文件夹用delete删除 window的删除动作 是从里往外删 java删除文件不走回收站 要慎用
boolean delete(); 删除此抽象路径名表示的文件或目录
void deleteOnExit(); 在虚拟机退出时删除
long length(); 获取文件大小
String getName(); 返回由此抽象路径名表示的文件或目录的名称
String getPath(); 将此抽象路径名转换为一个路径名字符串
String getAbsolutePath(); 返回此抽象路径名的绝对路径名字符串
String getParent(); 返回此抽象路径名父目录的抽象路径名 如果此路径名没有指定父目录 则返回 null
long lastModified(); 返回此抽象路径名表示的文件最后一次被修改的时间
File.pathS 返回当前系统默认的路径分隔符 windows默认为";"
File.S 返回当前系统默认的目录分隔符 windows默认为"\"
boolean exists(); 判断文件或者文件夹是否存在
boolean isDirectory(); 测试此抽象路径名表示的文件是否是一个目录
boolean isFile(); 测试此抽象路径名表示的文件是否是一个标准文件
boolean isHidden(); 测试此抽象路径名指定的文件是否是一个隐藏文件
boolean isAbsolute(); 测试此抽象路径名是否为绝对路径名
boolean renameTo(File dest); 可以实现移动的效果 剪切+重命名
十二 Properties
一个可以将键值进行持久化存储的对象 Map --& Hashtable的子类
用于属性配置文件 键和值都是字符串类型
特点: 可以持久化存储数据, 键值都是字符串, 一般用于配置文件
load(); 将流中的数据加载进集合 原理其实就是将读取流和指定文件相关联 并读取一行数据 因为数据是规则的key=value 所以获取一行后 通过 = 对该行数据进行切割 左边就是键 右边就是值 将键 值存储到properties集合中
store(); 写入各个项后 刷新输出流
list(); 将集合的键值数据列出到指定的目的地
阅读(...) 评论()}

我要回帖

更多关于 www.mymathlab.com 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信