読者です 読者をやめる 読者になる 読者になる

NinaLabo

個人ゲーム開発者の技術メモ

【C#】数値を符号(プラス/マイナス)を付けた文字列に変換する

C# Unity

たとえば・・

数値がプラスの場合は、

「こんぼう +1」

数値がマイナスの場合は、

「こんぼう -1」

数値がゼロの場合は、

「こんぼう」

と表示するとします。

 

もちろん、if分で場合分けして、文字列を組み立てればできるのですが、

string.Format ("{0} {1}"itemNamenum.ToString ("+#;-#;"));

と書けば、1行で済みます

(itemNameはstring変数で"こんぼう"を、numはint変数で数値が設定される想定) 

 書式の解説

num.ToString ("+#;-#;") が、わかりにくいと思うので、少し補足。

;(セミコロン)で区切られた左から、数値が正(プラス)の場合の書式、数値が負(マイナス)の場合の書式、数値が0(ゼロ)の場合の書式です。

この方式の場合、#には符号なしの数字が入るので、数値がマイナスのときにも-(マイナス)を記述しています。数値が0のときは何も表示しないので、2つ目のセミコロンの右側は、何も記述していません。