簡體   English   中英

將雙數四舍五入為指定的模式

[英]round off a double number to a specied pattern

我對此問題感到困惑..給定一個雙精度值輸入,例如7.2,現在輸出將是7.3和8。如果輸入是7.2.3,則輸出將是7.2.4和7.3.3。 到目前為止,我已經嘗試過下面的代碼

public class StrTest3 {
public static void main(String args[]){
    double num=0;
    double counter=0.0;
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter number: ");
    num=sc.nextDouble();
    double num2=(double)Math.round(num);

}}

但它的輸出為7.2是7.0 ..請幫助

方法

Math.round(double) 

返回一個long,僅將其強制轉換為double不會恢復精度

作為對等javadocs

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#round(double)

返回最接近參數的長整數,並舍入四舍五入

您也可以嘗試使用NumberFormat

在這種情況下,您可能會很棘手。 嘗試,

num=num*10;
double new_num=((double)Math.round(num))/10;

這是實現所需目標的更明智的方式。 您可以乘以除以相同的數字來設置要舍入到的小數位

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM