精华内容
下载资源
问答
  • [Java教程]Java中的高精度整数和高精度小数0 2017-08-14 09:00:18在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差:在下面的代码中,我们验证了,当...

    [Java教程]Java中的高精度整数和高精度小数

    0 2017-08-14 09:00:18

    在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差:

    在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误差的,为了减小和防止这种误差的出现,我们需要使用BigInteger类和BigDecimal类来计算。package com.ietree.base.number;import java.math.BigDecimal;import java.math.BigInteger;public class BigIntegerTest { public static void main(String[] args) { float f1 = 123.01f + 2.01f; // 预期输出:125.02,实际输出:125.020004 System.out.println(f1); // 预期输出:125.02,实际输出:125.02000000000001 System.out.println(123.01 + 2.01); System.out.println("==============================="); // 高精度整数测试 BigInteger bint1 = new BigInteger("125"); BigInteger bint2 = new BigInteger("999"); BigInteger tmp; // 相加 tmp = bint1.add(bint2); System.out.println("bint1 + bint2 = " + tmp); // 相减 tmp = bint2.subtract(bint1); System.out.println("bint2 - bint1 = " + tmp); // 相乘 tmp = bint1.multiply(bint2); System.out.println("bint1 * bint2 = " + tmp); // 相除 tmp = bint2.divide(bint1); System.out.println("bint2 / bint1 = " + tmp); // 求余数 tmp = bint2.remainder(bint1); System.out.println("bint2 % bint1 = " + tmp); // 求次方 tmp = bint2.pow(2); System.out.println("bint2的二次方 = " + tmp); System.out.println("======================================"); // 高精度小数测试 BigDecimal bd1 = new BigDecimal(123.01); BigDecimal bd2 = new BigDecimal(2.01); BigDecimal bd; // 相加 bd = bd1.add(bd2); System.out.println("bd1 + bd2 = " + bd); // 相减 bd = bd1.subtract(bd2); System.out.println("bd2 - bd1 = " + bd); // 相乘 bd = bd1.multiply(bd2); System.out.println("bd1 * bd2 = " + bd); // 相除 // bd = bd1.divide(bd2); bd = bd1.divide(new BigDecimal(2.0)); System.out.println("bd1 / 2.0 = " + bd); // 求余数 bd = bd1.remainder(bd2); System.out.println("bd2 % bd1 = " + bd); // 求次方 bd = bd1.pow(3); System.out.println("bd2的三次方 = " + bd); System.out.println("======================================"); // 四舍五入保留小数位数 BigDecimal bd3 = new BigDecimal(123.01).setScale(5,5); System.out.println("bd3 = " + bd3); }}

    本文网址:http://www.shaoqun.com/a/321125.html

    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

    JAVA

    0

    展开全文
  • 在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差:在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误差的,...

    在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差:

    在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误差的,为了减小和防止这种误差的出现,我们需要使用BigInteger类和BigDecimal类来计算。

    package com.ietree.base.number;

    import java.math.BigDecimal;

    import java.math.BigInteger;

    public class BigIntegerTest {

    public static void main(String[] args) {

    float f1 = 123.01f + 2.01f;

    // 预期输出:125.02,实际输出:125.020004

    System.out.println(f1);

    // 预期输出:125.02,实际输出:125.02000000000001

    System.out.println(123.01 + 2.01);

    System.out.println("===============================");

    // 高精度整数测试

    BigInteger bint1 = new BigInteger("125");

    BigInteger bint2 = new BigInteger("999");

    BigInteger tmp;

    // 相加

    tmp = bint1.add(bint2);

    System.out.println("bint1 + bint2 = " + tmp);

    // 相减

    tmp = bint2.subtract(bint1);

    System.out.println("bint2 - bint1 = " + tmp);

    // 相乘

    tmp = bint1.multiply(bint2);

    System.out.println("bint1 * bint2 = " + tmp);

    // 相除

    tmp = bint2.divide(bint1);

    System.out.println("bint2 / bint1 = " + tmp);

    // 求余数

    tmp = bint2.remainder(bint1);

    System.out.println("bint2 % bint1 = " + tmp);

    // 求次方

    tmp = bint2.pow(2);

    System.out.println("bint2的二次方 = " + tmp);

    System.out.println("======================================");

    // 高精度小数测试

    BigDecimal bd1 = new BigDecimal(123.01);

    BigDecimal bd2 = new BigDecimal(2.01);

    BigDecimal bd;

    // 相加

    bd = bd1.add(bd2);

    System.out.println("bd1 + bd2 = " + bd);

    // 相减

    bd = bd1.subtract(bd2);

    System.out.println("bd2 - bd1 = " + bd);

    // 相乘

    bd = bd1.multiply(bd2);

    System.out.println("bd1 * bd2 = " + bd);

    // 相除

    // bd = bd1.divide(bd2);

    bd = bd1.divide(new BigDecimal(2.0));

    System.out.println("bd1 / 2.0 = " + bd);

    // 求余数

    bd = bd1.remainder(bd2);

    System.out.println("bd2 % bd1 = " + bd);

    // 求次方

    bd = bd1.pow(3);

    System.out.println("bd2的三次方 = " + bd);

    System.out.println("======================================");

    // 四舍五入保留小数位数

    BigDecimal bd3 = new BigDecimal(123.01).setScale(5,5);

    System.out.println("bd3 = " + bd3);

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    时间: 2017-08-11

    展开全文
  • 整数除法小数点后第n位开始的3位数位数不足的补0,如0.125小数第3位后三位:0.12500→500输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置输出格式:3位数字,a÷b小数后第n位开始的3位数字样例:输入:1 8 1...

    求整数除法小数点后第n位开始的3位数

    位数不足的补0,如0.125小数第3位后三位:0.12500→500

    输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置

    输出格式:3位数字,a÷b小数后第n位开始的3位数字

    样例:

    输入:1 8 1

    输出:125

    输入1 8 3

    输出:500

    输入:282866 999000 6

    输出:914

    package bb;

    import java.util.Scanner;

    public class 求小数n位后3个数 {

    static long a, b, n;

    static void getInput() {

    Scanner sc = new Scanner(System.in);

    a = sc.nextLong();

    b = sc.nextLong();

    n = sc.nextLong();

    sc.close();

    }

    // a扩大10^(n - 1) + 3倍,÷b,再取后3位

    static void calc() {

    long _扩大倍数 = (long) Math.pow(10, (n - 1) + 3);

    long _a扩大后 = a * _扩大倍数;

    long _商 = _a扩大后 / b;

    long _后三位 = _商 % 1000;

    System.out.println(_后三位);

    }

    public static void main(String[] args) {

    getInput();

    calc();

    // 输入:1 8 1

    // 输出:125

    // --------------

    // 输入1 8 3

    // 输出:500

    // --------------

    // 输入:282866 999000 6

    // 输出:914

    }

    }

    展开全文
  • 例如,当您键入22和56时,此代码可以正常工作,它显示正确的结果import java.util.Scanner;class apples{public static void main(String args[]){Scanner villy = new Scanner (System.in);double fnum, snum, answer;...

    例如,当您键入22和56时,此代码可以正常工作,它显示正确的结果

    import java.util.Scanner;

    class apples{

    public static void main(String args[]){

    Scanner villy = new Scanner (System.in);

    double fnum, snum, answer;

    System.out.println("Enter first num: ");

    fnum = villy.nextDouble();

    System.out.println("Enter second num: ");

    snum = villy.nextDouble();

    answer = fnum + snum;

    System.out.println(answer);

    }

    }

    但是当您尝试将小数放入例如23.53和42.76时,它将失败,并带有以下异常

    Exception in thread "main": java.util.InputMismatchException

    at java.util.Scanner.throwFor(unknown Source)

    at java.util.Scanner.next(unknown Source)

    at java.util.Scanner.nextDouble(unknown Source)

    at apples.main(apples.java:8)

    解决方法:

    您是否正在使用非英语计算机?例如,在法国或德国语言环境中,您必须输入23,53,而不是23.53.

    扫描程序的默认语言环境是Locale.getDefault()返回的内容:在英语计算机上,它应该返回Locale.ENGLISH.您可以通过以下方法将语言环境设置为英语:

    Scanner villy = new Scanner(System.in).useLocale(Locale.ENGLISH);

    标签:calc,java

    来源: https://codeday.me/bug/20191209/2097189.html

    展开全文
  • 项目用到了这个功能,查了下资料就写了个,传上来存档:import java.math.BigDecimal;/**** @author lan**/public class RandomTest {/*** @param args*/public static void main(String[] args) {float Max = 100, Min...
  • 主要介绍了java求数组最大值和最小数示例,需要的朋友可以参考下
  • Java保留小数

    2018-03-14 10:21:47
    实数绝对值并保留2位小数。 import java.text.DecimalFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); while...
  • 求小数的某一位java

    2020-06-14 09:41:48
    分数(a/b)化为小数后,小数点后第 n 位的数字是多少? 输入描述 三个正整数 a,b,n,相邻两个数之间用单个空格隔开。 0<a<100,0<b<100,1≤n≤10000。 输出描述 一个数字。 样例输入 1 1 2 1 样例输出...
  • 分段函数JAVA小数精确)

    千次阅读 2018-03-07 21:07:47
    分段函数值 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description有如下分段函数 F(x) = x^2 + 1 当x> 0时; F(x) = -x 当x时; F(x) = 100.0 当x=0时; 编程根据输入的不同...
  • Java 小数转百分数 通俗易懂 2种方法 适合小白参考 方法一: /** * 两种小数转百分号的方法 * 第一种简单粗暴 * 第二种得记!反复练习就能掌握!! * 效果:3-->30% * @param args */ public static void main...
  • java求圆的面积(保留小数) import java.text.DecimalFormat; import java.util.Scanner; /*问题描述 给定圆的半径r,求圆的周长和面积。 键盘输入一个整数(浮点)作为圆的半径r。 输出:包含两个实数,分别表示圆...
  • 吃透了这个项目,你的java基础部分已经非常棒了!!!一 、 项目概述技能要求 使用面向对象设计的思想 合理运用异常处理 使用集合框架存储数据,不使用数据库 使用 I/O 操作实现对文件的读写开发工具JDK 7.0...
  • Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。 在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是...
  • 展开全部Java中Double保留后小数位的几种方法e69da5e6ba9032313133353236313431303231363533313333656662371.能四舍五入1 double d = 114.145;2 d = (double) Math.round(d * 100) / 100;3 System.out.println(d);2....
  • import java.util.Scanner;public class ChangeToFenshuDemo {public static int getGongYueShu(int a, int b) {//两个数的最大公约数int t = 0;if(a < b){t = a;a = b;b = t;}int c = a % b;if(c == 0){return...
  • IOS 图片轮播实现原理 (三图)IOS 图片... 但是如果图片数量较多时,一次性加载过多图片会 ...Java和Python运行速度对比Java和Python运行速度对比:同一个函数运行一百万次,Java耗时0.577秒,Python耗时78秒--135倍的差...
  • java求前k个最小数

    2020-07-19 17:38:21
    class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (k == 0) { return new int[0]; } else if (arr.length <= k) { return arr; ... partitionArray(arr, 0, arr.length - 1, k);...
  • 今天写程序,偶然发现一个问题,感觉很奇怪,请看代码: public class FloatTest { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("result is "+(...
  • 今天在实现业务功能的时候,需要用到指定位数的小数,所以封装了一个方法,写的有点乱,考虑的还算周全吧。主要是用String提供的方法实现的。 public class MathHelper {  /**  *   * @param value 需要化成...
  • java求一个整数的平方根,不保留小数

    千次阅读 2019-04-12 19:26:06
    碰到一个面试题: public static void main(String[] args) { // questionOne(3);... java求一个整数的平方根,不保留小数 public static void questionOne(int sc) { //保留几位小数 DecimalFormat...
  • 小蒜想知道:分数 a/b 化为小数后,小数点后第 n 位的数字是多少? 输入格式 ...这道题我自己通过double类型出小数点后的小数,再找出小数点后要求的数,但是double类型的数据有限,这道题上的n最...
  • 高精求小数幂 难度 2/102/102/10 学了好多java函数(笑 题意 求出 RnR^nRn RRR 是实数。 nnn 是整数。 0.0<R≤9999.90.0 < R \le 9999.90.0<R≤9999.9 1≤n≤101\le n\le 101≤n≤10 要求: 没有前导零 ...
  • 整数除法小数点后第n位开始的3位数 位数不足的补0,如0.125小数第3位后三位:0.12500→500 输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置 输出格式:3位数字,a÷b小数后第n位开始的3位数字 样例: 输入:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 824
精华内容 329
关键字:

java求小数

java 订阅