通知
すべてクリア
16/03/2021 10:46 pm
経過時間を表示するUIで、
[SerializeField] private TextMeshProUGUI timer;
[SerializeField] private int minute;
[SerializeField] private float seconds;timer.text = string.Format("{0:00}:{1:00}", minute, (int)seconds );
上記のような書き方で正常に時間を表示できるのですが、
①
こちらではエラーとなります。
string = “string”,int,int;
となっているので、可能だと思ったのですが、何が問題なのでしょうか?
timer.text = "{0:00}:{1:00}", minute, (int)seconds;
こちらではエラーとなります。
string = “string”,int,int;
となっているので、可能だと思ったのですが、何が問題なのでしょうか?
②
また、こちらでは正常に表示できますが、
現行の「string.Format」と「型.Tostring」の使い分けを教えていただきたいです。
また、こちらでは正常に表示できますが、
timer.text = minute.Tostring("00") + ":" +((int)seconds).Tostring("00");
現行の「string.Format」と「型.Tostring」の使い分けを教えていただきたいです。
16/03/2021 10:50 pm
①について
のような書き方ですと、関数を使わずにカンマ「 , 」が使われているのが問題です。
正しくは
"{0:00}:{1:00}", minute, (int)seconds;
のような書き方ですと、関数を使わずにカンマ「 , 」が使われているのが問題です。
正しくは
string.format( String , Object)
と言った書き方をするので、string.Format
関数を使うようにしましょう。②について
それに対して
例えばですが
ToString()
はint型やfloat型をstring型に変更する関数です。桁数などを指定できます。それに対して
string.Format()
は様々な書式を指定してstring型に変換してくれる関数です。例えばですが
//21%を返す
string.Format("{0:P}", 0.21);
上のように記述すると少数を%にして返してくれます。その他にも文字列の結合なども行えます。
string.Format
のほうができる幅が広いと考えるとわかりやすいですね。