java保留兩位小數的函數
1. java四捨五入 保留兩位小數
因為double型小數部分會在從二進制變十進制的類型變換中產生誤差,所以x2會變成-3.80000000000003,如果要使輸出四捨五入 保留兩位小數,可以用String的format函數,方法如下:
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));
2. 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
3. java 保留小數點後2位
給你說個比較簡單的方法吧,不知道你有沒用學過c語言,c和c++都有格式化輸出函數:printf()。
Java也有同樣的格滲舉拆式化輸出,針對你的這個答伍問題可以這么寫
System.out.printf("%.2f",d);/叢棗/d是一個double或float類型,保留小數點後兩位
這只是printf的某一種用法,建議你去看看它的其他更多的用法。
4. 怎樣用java實現小數的四捨五入
我喜歡用 一個小數加上0.5,這樣改五入的就進位了,該四舍的就沒進位。
然後用一個Math.floor(a)就可以了
a是加過0.5厚的小數