亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中使用Double保持精度

在Java中使用Double保持精度

慕容708150 2019-05-31 10:51:53
在Java中使用Double保持精度public class doublePrecision {     public static void main(String[] args) {         double total = 0;         total += 5.6;         total += 5.8;         System.out.println(total);     }}以上代碼打?。?1.399999999999我如何才能把它打印出來(或者可以用作)11.4?
查看完整描述

3 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

例如,當您輸入一個雙數字時,33.33333333333333,您得到的值實際上是最接近可表示的雙精度值,確切地說:

33.3333333333333285963817615993320941925048828125

除以100表示:

0.333333333333333285963817615993320941925048828125

它也不能表示為雙精度數字,因此再次將其舍入到最接近的可表示值,即:

0.3333333333333332593184650249895639717578887939453125

輸出此值時,它將被舍入。再一次到17位小數,給出:

0.33333333333333326


查看完整回答
反對 回復 2019-05-31
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

如果您只想將值處理為分數,則可以創建一個包含分子和分母字段的分數類。

編寫加、減、乘和除的方法以及toDouble方法。這樣,您可以避免在計算期間浮動。

編輯:快速實現,

public class Fraction {private int numerator;private int denominator;public Fraction(int n, int d){
    numerator = n;
    denominator = d;}public double toDouble(){
    return ((double)numerator)/((double)denominator);}public static Fraction add(Fraction a, Fraction b){
    if(a.denominator != b.denominator){
        double aTop = b.denominator * a.numerator;
        double bTop = a.denominator * b.numerator;
        return new Fraction(aTop + bTop, a.denominator * b.denominator);
    }
    else{
        return new Fraction(a.numerator + b.numerator, a.denominator);
    }}public static Fraction divide(Fraction a, Fraction b){
    return new Fraction(a.numerator * b.denominator, a.denominator * b.numerator);}public static Fraction multiply(Fraction a, Fraction b){
    return new Fraction(a.numerator * b.numerator, a.denominator * b.denominator);}public static Fraction subtract(Fraction a, Fraction b){
    if(a.denominator != b.denominator){
        double aTop = b.denominator * a.numerator;
        double bTop = a.denominator * b.numerator;
        return new Fraction(aTop-bTop, a.denominator*b.denominator);
    }
    else{
        return new Fraction(a.numerator - b.numerator, a.denominator);
    }}}


查看完整回答
反對 回復 2019-05-31
  • 3 回答
  • 0 關注
  • 3220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號