3 回答

TA貢獻1820條經(jīng)驗 獲得超10個贊
DF.format(lat)
正在返回 a String
,您無法將 a 格式化Double
為您想要的任何內(nèi)容。
double不能包含所有尾隨零,例如:
System.out.println((double) 1.0000); //Will print 1.0
要將它打印到任何你想要的東西,你必須將它打印為一個字符串:
System.out.println("1.0000"); //Will print 1.0000
這就是為什么.format
返回 aString
而不是 double 的原因。
將最后一行更改為:
String latlast = DF.format(lat);
編輯:如果您想將小數(shù)位截斷為 6 位數(shù)字,請改用此方法。
double lat = (latPoint * 180.0 / Math.PI); double latFloor = Math.floor(lat * 1000000) / 1000000; //6 decimal places

TA貢獻1780條經(jīng)驗 獲得超1個贊
DecimalFormat.format(double val)回報String,不是Double。
double lat = (latPoint * 180.0 / Math.PI);
DecimalFormat DF = new DecimalFormat("#.########");
String latlast = DF.format(lat);

TA貢獻1821條經(jīng)驗 獲得超5個贊
如果你想將 double 格式化為 double 并滿足一些要求,那么你可以再次轉(zhuǎn)換它,因為
double lat = (latPoint * 180.0 / Math.PI);
DecimalFormat format = new DecimalFormat("#.####");
String format1 = format.format(ad);
此代碼將格式化的雙精度返回到字符串形式。
所以你必須用這個再次將它轉(zhuǎn)換成雙倍
double number = Double.parseDouble(format1);
添加回答
舉報