🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

540閲覧

一の位を消し、小数点第1位〜3位までを表示する

so0155hh

総合スコア6

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/11/07 09:56

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Swiftで、野球の打率を計算するアプリを作成しています。
打率(battingAverage) = 安打数(numberOfHits) / 打数(atBats)

結果を表示する際、一の位の「0」を消したいのですが、その方法がわかりません。
下記のコードでatBatsTextに「3」を入力し、
numberOfHitsTextに「1」を入力すると、
計算結果は「0.333」となります。
それを「.333」と表示したいです。

該当のソースコード

@IBOutlet weak var atBatsText: UITextField!

@IBOutlet weak var numberOfHitsText: UITextField! @IBOutlet weak var battingAverageResult: UILabel! @IBAction func calculate(_ sender: Any) { let AtBats = Int(atBatsText.text!) let numberOfHits = Int(numberOfHitsText.text!) let result = Double(numberOfHits!) / Double(AtBats!) let average = Double(result) battingAverageResult.text = String(format: "%.3f", average)

試したこと

"%.3f"に何か付け加えれば一の位が消えるのではないか、と考えているのですが、方法がわからない状態です。

まだ初心者で、コードも読みづらいかと思いますが、解決方法をご教示いただけないでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1000掛けてintにしてしまい、".%03d"でどうでしょう


Cと違いますか。
まあとにかく1000掛けて、int にキャストして"%03d"で3桁出てくるんで、その前にピリオドつければいいぢゃん!ってことで。

投稿2019/11/07 11:16

編集2019/11/07 12:44
y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

so0155hh

2019/11/07 13:38

丁寧にご解説いただきありがとうございました。 自分の思い通りに作成でき、コードの書き方の理解も深めることができました。 引き続き学習を続けます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問