簡體   English   中英

Java 格式化輸出

[英]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 你不能打印字符串來代替它。

double 的正確格式是 %f 而不是 %d,因此將代碼修改為:

 System.out.print(String.format("%7f",  Math.pow(n,2)));

另見: 鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM