[英]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.