0
0

【GDevelop】数字をカンマ区切り(の文字列?)にする

Posted at

はじめに

絶対に公式関数でありそうな気がする、数字のカンマ区切り。

調べても調べても自作拡張機能とかの話ばかりで、なんかスッキリしないのでJavaScriptでの記述を探しました。

ChatGPTのある時代で良かった。

答え

右クリック「追加」「JavaScript」から。

条件の無いとこで大丈夫でした。

(画像)
image.png

「JavaScriptに渡すオブジェクトを選択して下さい」は無視して良いっぽいですね。

(ソースコード)

// カンマ区切りにする関数
function formatNumberWithCommas(x) {
    if (x < 10000) {
        // 10000未満なら小数点以下1位まで表示
        return x.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
        // 10000以上なら小数点以下を表示しない
        return Math.floor(x).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }
}

// グローバル変数`Count`の値を取得
var countValue = runtimeScene.getGame().getVariables().get("Count").getAsNumber();

// カンマ区切りに変換
var formattedCount = formatNumberWithCommas(countValue);

// 'CountText'という名前のテキストオブジェクトを取得
var countTextObject = runtimeScene.getObjects("CountText")[0];

// テキストをカンマ区切りにした値に設定
countTextObject.setString(formattedCount);

拡張(10000未満なら小数点以下1位も表示する)

関数部分を変更

// カンマ区切りにする関数
function formatNumberWithCommas(x) {
    if (x < 10000) {
        // 10000未満なら小数点以下1位まで表示
        return x.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
        // 10000以上なら小数点以下を表示しない
        return Math.floor(x).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }
}

終わり

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0