java的double型怎么保留小数点后8位而且不失真?
1、String.format("%.8f", 1.098765432)
2、new java.text.DecimalFormat("#.00000000").format(nu1.098765432)
这两个都是使用四舍五入,不会失真。
double( 双精度浮点型)是计算机使用的一种资料型别。
比起单精度浮点数(float),double( 双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。
它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308
java的Double的toString(),希望保留小数点后两位小数
DecimalFormat和String.substring()都可以
import java.text.*;
DecimalFormat myFormatter = new DecimalFormat("####.#");
myFormatter.format(double); //注意,这句整体作为String
也可以
String str = double.toString();
str = str.substring(0,str.indexOf(".")+2);
写得匆忙不一定对,自己调试下
怎样保留小数点后面三位
蒙住小数点后三个位置,看第四个位置进行四舍五入
15.5*1.8=27.9保留小数点后一位
15.5*1.8=27.9
保留小数点后一位:27.9
解析
保留一位小数要看小数点第二位、
大于或等于5的进一位、小于的话不用进。
float64保留小数点后3位怎么弄
double x=3.1415926;
printf("%.3lf",x);
float a = 999.3599f; //设数值 int b = (int)Math.Round(a * 1000); //小数点后三位前移,并四舍五入 float c = (float)b / 1000; //还原小数点后三位
%x.3f(注:x是整数部分的域宽,.3是你想保留的3位小数,如果你想保留四位,就把3改成4,以此类推)
func Round(f float64, n int) float64 {
pow10_n := math.Pow10(n)
return math.Trunc((f+0.5/pow10_n)*pow10_n) / pow10_n
}
点击查看隐藏内容