[英]Java formatting output
我完全沒有 Java 方面的經驗,正在使用文本編輯器編寫代碼,所以我看不到問題是什么(我從命令行運行)我看到錯誤並知道它是什么,但我不知道如何要解決這個問題
System.out.print(String.format("%7d", Math.pow(n,2).toString()));
我也試過沒有.toString()
基本上如果我只打印 n 它可以工作,但是 power 函數給我一個錯誤可能是因為返回類型,但是 pow 應該返回一個雙精度並且字符串格式 %7d 可能也是雙精度的,對嗎?
您使用了錯誤的格式說明符。 %d
用於整數。
Math.pow()
返回原始double
,您無法在其上調用toString()
方法。
嘗試使用用於String
%7s
,並將原始 double 值轉換為Wrapper type
:-
String.format("%7s", Double.valueOf(Math.pow(n,2)).toString())
但是,您不需要將參數轉換為String
,您可以直接將double value
與%f
:-
String.format("%.3f", Math.pow(n,2));
您很可能想在沒有toString
情況下使用f
而不是d
。 如果您實際上能夠執行toString
(正如 Quoi 指出的,您不能從原語執行),那么將無法使用期望使用的Number
對象(在您的情況下為Double
)的Formatter
。
這是String.format
使用的Formatter
程序。
Math#pow(double,double)
返回不能調用toString
方法的原始雙精度值。 使用 f 代替 d,d 表示十進制整數。
System.out.format("%7f", Math.pow(n,2));
最好從 Eclipse 或任何其他編輯器開始編寫代碼。
問題在於toString
方法。 您已經給出了格式說明符%7d
,這意味着integer
。 你不能打印字符串來代替它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.