Ⅰ java如何取小數點前兩位,並四捨五入
取小數點前兩位,並四捨五入:
doublem=7237.3589
一、
DecimalFormatdf=newDecimalFormat("#.00");
System.out.println(df.format(m));
二、
System.out.println(String.format("%.2f",m));
Ⅱ java怎麼保留兩位小數
java自帶api是沒有保留兩位小數的,需要自己去封裝定義
Ⅲ Java中怎樣保留兩位小數。是不是要用Math.round()啊
總的說來,我用了兩中方式。
System.out.printf("f(%d)= %.2f\n",x,y);printf是java繼承C來的,可以用c的方式來格式化輸出。
還有就是java自己提供了更為豐富的格式化輸出。用到Format,format 是一個用於格式化語言環境敏感的信息(如日期、消息和數字)的抽象基類。 Format 定義了編程介面,用於將語言環境敏感的對象格式化為 String(使用 format 方法)和將 String 重新解析為對象(使用 parseObject 方法)。數字
NumberFormat 用於格式化輸出 數字,在java.text.包中,如果你有API,那就很簡單的多了。
你復制下去,運行一下,我測試的是
3
2 =0.5
3 =0.33
4 =0.25
和你的要求一樣。希望採納。
import java.text.NumberFormat;
import java.util.Scanner;
public class Test
{
public static void main(String args[])
{
int repeat, ri,x;
double y;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
NumberFormat f=NumberFormat.getInstance();
f.setMaximumFractionDigits(2);
for(ri = 1; ri <= repeat; ri++)
{
x=in.nextInt();
/*---------*/
if(x!=0)
y=1.0/x; //還有在這里,是1.0/x,不然結果全是0.如果不懂,下面有連接,我回答的
else
y=0;
//System.out.println("f("+x+")="+y);
String s=f.format(y);
//System.out.printf("f(%d)= %.2f\n",x,y);
System.out.println("f("+x+")="+s);
//如果要得到你所說的,我建議用numberformat來格式化輸出。
}
}
}
http://..com/question/390739373.html?old=1&afterAnswer=1#here
Ⅳ java 保留兩位小數點
public double tofloat(double value) {
String retValue = null;
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
retValue = df.format(value);
retValue = retValue.replaceAll(",", "");
return Double.parseDouble(retValue);
}
Ⅳ Java里如何取小數點後2位.(代碼)
DecimalFormat fmt=new DecimalFormat("0.##");
fmt.format(1588.4154);
第一句就是建立一個輸出格式最多為小數點後兩位的模板,下面一句是以此模板將數以 StringBuffer形式返回
Ⅵ java、怎樣簡便的保留小數點後兩位。
有兩種情況:
1、只要輸出結果的時候可以用以下方法:
double x1 = 0.026;
System.out.println(String.format("%.2f", x1));
結果:0.03
2、使用數據專轉換(4種方法)
//方案一屬:
get_double = (double)(Math.round(result_value*100)/100.0)
//方案二:
DecimalFormat df = new DecimalFormat("#.##");
get_double = Double.ParseDouble(df.format(result_value));
//方案三:
get_double = Double.ParseDouble(String.format("%.2f",result_value));
//方案四:
BigDecimal bd = new BigDecimalresult_value();
BigDecimal bd2 = bd.setScale(2,BigDecimal .ROUND_HALF_UP);
get_double = Double.ParseDouble(bd2.ToString());
Ⅶ java 取兩位小數 不要四捨五入怎麼做
對一個小數點後有多位數的實數,取兩位小數而不四捨五入,有兩種方案:
乘100再強轉成int,再除以100就得到了想要的數
也可以寫一個小工具,以便以後重復使用,代碼如下:
/**
*a為一個帶有未知位小數的實數
*對其取b位小數
*@parama
*@paramb
*@return
*/
staticdoublegetDouble(doublea,intb){
intx=0;
inty=1;
for(inti=0;i<b;i++){
y=y*10;
}
System.out.println(y);
x=(int)(a*y);
System.out.println("x="+x);
return(double)x/y;
}
Ⅷ java保留兩位小數
網上回答基本上都是復制,最少都是2015年之前的,比較復雜,目前主流簡單
已知一個內float x=100.12314f;
保留2位數,則*/都是100;添加這容一句後輸出即可
x=(float)(int) (X*100)/100;
publicclassMain{
publicstaticvoidmain(String[]args){
floatx=100.12314f;
x=(float)(int)(X*100)/100;
System.out.printf(x);
}
}
回答這個問題算是自己備忘一下,老是搜索到一大堆亂七八糟復雜化的博客