ページ 11

【解決済み】トリアコンタンさんのFloatVariables.js で小数第2位以降も保持するには?

Posted: 2021年3月30日(火) 04:09
by rpgcode
セマンティックバージョニングのため変数でX.X.Xのようにバージョン番号を管理できればと考えています。

そこでトリアコンタンさんのFloatVariables.jsを導入しました。
小数対応した変数に数値で"0.10"と保存し、デベロッパーツールのconsole.logで確認すると"0.1"、typeofで確認するとnumber型で保存されています。

"0.11"と入力すると"0.11"がそのまま表示されるのですが、"0.10"を"0.1"ではなく、"0.10"とそのまま保持することは可能でしょうか?

Re: トリアコンタンさんのFloatVariables.js で小数第2位以降も保持するには?

Posted: 2021年3月30日(火) 10:12
by Plasma Dark
表示の際に Number.prototype.toFixed を用いてみてはいかがでしょう。

コード: 全て選択

$gameVariables.value(x).toFixed(2)
https://developer.mozilla.org/ja/docs/W ... er/toFixed

セマンティックバージョニングを扱うなら、小数点数を用いるよりメジャー/マイナー/パッチバージョンそれぞれを別変数に入れるとか、可能ならnpmのsemverを使ってしまうのも手じゃないかと思います。

https://github.com/npm/node-semver#readme
単に表示したいだけの場合は too much 感があるので、変数を3つ使うだけで済ませるのが一番楽だとは思います。

Re: トリアコンタンさんのFloatVariables.js で小数第2位以降も保持するには?

Posted: 2021年3月30日(火) 12:06
by rpgcode
Plasma Darkさん

レスありがとうございます。
toFixedメソッドで望む表記になりました!
セマンティックバージョニングを扱うなら、小数点数を用いるよりメジャー/マイナー/パッチバージョンそれぞれを別変数に入れる
おっしゃるように、初めの実装方法としては上記実装が簡単かなと思ったのですが、アプリをバージョンアップした際、一括で自動更新処理などを行う場合、バージョン判定の範囲指定が面倒なのではないかと思い断念していました。
(例えば、最新バージョンが1.3.2で、過去バージョン1.0.19, 1.2.23, 1.2.8, 1.3.0などの複数バージョンの条件判定をするとき、過去バージョン1.3.0以前全てを範囲対象とする条件式)

アップデートしたいバージョンを範囲指定できるといいなと思って、バージョン番号を文字列型から数値型小数にすれば範囲指定しつつ、セマンティックバージョニング(風)に管理できないかなと思った次第です。

こういうものがあると理想です。

https://docs.microsoft.com/ja-jp/javasc ... ipt-latest

lessThan(compareWith)メソッド
このバージョンが入力パラメーターよりも小さい (つまり、古い) かどうかをテストします。
可能ならnpmのsemverを使ってしまうのも手じゃないかと思います。
RPGツクールMVでもnpmのパッケージシステムは使えるのでしょうか?

Re: トリアコンタンさんのFloatVariables.js で小数第2位以降も保持するには?

Posted: 2021年3月30日(火) 19:54
by Plasma Dark
おっしゃるように、初めの実装方法としては上記実装が簡単かなと思ったのですが、アプリをバージョンアップした際、一括で自動更新処理などを行う場合、バージョン判定の範囲指定が面倒なのではないかと思い断念していました。
表示だけでなく、バージョンの判定も行いたいとすると面倒ですね。
RPGツクールMVでもnpmのパッケージシステムは使えるのでしょうか?
使えます。配布物に node_modules を含める必要がありますが、MVのデプロイメントは幸か不幸か、プロジェクトフォルダ内のフォルダをまるごと成果物に含める挙動をしますので、プロジェクト内に npm install なり yarn add なりしておけば問題なく使えます。

こんな感じのプラグインが動くことを確認しました。
https://gist.github.com/elleonard/f54c7 ... f6358d96d6

Re: トリアコンタンさんのFloatVariables.js で小数第2位以降も保持するには?

Posted: 2021年3月30日(火) 20:53
by rpgcode
Plasma Darkさん

サンプルありがとうございます。
これを機にnpmでsemver使ってみたいと思います。

教えて下さりどうもありがとうございました!