数字の少数第2位まで表示させたい

PR環境です。 Skript 2.6.4 1 は 1.00 1.5 は 1.50 1.521 は 1.52 1.528 は 1.53 少数第3位を四捨五入する。 みたいなことがしたいです。 round関数の引数dはSkriptのバージョンが対応してなくって使えませんでした。 https://skripthub.net/docs/?id=2126
Skript Hub - Documentation
round (Function) - Skript
Rounds a number, i.e. returns the closest integer to the argument. Place a second argument to define the decimal placement.
Solution:
``` set {_parce} to "%round({_parce} * 100)%" set {_parce::*} to split {_parce} at "" set {_i} to length of {_parce} - 2 ...
Jump to solution
12 Replies
月猫ch
月猫ch2mo ago
configにある
soramame_256
soramame_2562mo ago
*100してroundしたあと/100
すぁ
すぁOP2mo ago
number accuracy であっていますか? 2に設定したら、5.67のように小数第2位まで表示されるようにはなったんですが、5.60や5.00のように末尾が0のときは省略されて5.6や5と表示されてしまいます。
No description
すぁ
すぁOP2mo ago
わかりずらい質問ですみません。左のスクショみたいに、.00と.0を省略せずに表示させたいんです。
No description
No description
月猫ch
月猫ch2mo ago
まーーーーー極論 *100して 自力で『.』つけるとか? 数字のまんまじゃなくて文字として処理する
yukkina
yukkina2mo ago
1.00とか理系か?
月猫ch
月猫ch2mo ago
小数点によって横幅がガクガクするのを防ぎたいんじゃない?
yukkina
yukkina2mo ago
なーほ
すぁ
すぁOP2mo ago
そうです
月猫ch
月猫ch2mo ago
yukkina
yukkina2mo ago
×100 round() 後ろから二文字目に.を挿入 ってことやな 数値として扱いたいなら、内部用の変数は数値にして、それを元に表示用のstring生成する関数作る
Solution
すぁ
すぁ2mo ago
set {_parce} to "%round({_parce} * 100)%"
set {_parce::*} to split {_parce} at ""
set {_i} to length of {_parce} - 2

set {_parce::%{_i}%} to 0 if {_parce::%{_i}%} isn't set

set {_parce::%{_i}%} to "%{_parce::%{_i}%}%."
set {_parce} to join {_parce::*} with ""
set {_parce} to "%round({_parce} * 100)%"
set {_parce::*} to split {_parce} at ""
set {_i} to length of {_parce} - 2

set {_parce::%{_i}%} to 0 if {_parce::%{_i}%} isn't set

set {_parce::%{_i}%} to "%{_parce::%{_i}%}%."
set {_parce} to join {_parce::*} with ""
後ろから?文字目っていうのが難しかったので、読みにくくなってしまったけどsplitつかってこんな感じで実現できました。ありがとうございました!
Want results from more Discord servers?
Add your server