アクション スクリプト

【PowerAutomateDesktop】スクリプトでRound(四捨五入)する

VBScriptで算出

VBScript
 
VBScriptのRound関数は偶数丸め(銀行丸め)となっており、以下の出力結果のように、round(2.5)=2、となっているので、一般的な四捨五入と異なるところに注意が必要です。
VBScript_result
それ故、基本的には、丸めを行う小数点以下の桁数を表す数値を第二引数で指定した方が良さそうです。
 

Scripting.RunVBScript VBScriptCode: $'''WScript.Echo(round(1.5))
WScript.Echo(round(2.5))
WScript.Echo(round(2.555, 0))
WScript.Echo(round(2.555, 1))
WScript.Echo(round(2.555, 2))''' ScriptOutput=> VBScriptOutput ScriptError=> ScriptError

 

JavaScriptで算出

JavaScriptのRound関数には、第二引数が無いので、以下のように、掛けてから割る、という工夫が必要になります。
JavaScript
 
JavaScript_result
 

Scripting.RunJavascript JavascriptCode: $'''WScript.Echo(Math.round(1.5))
WScript.Echo(Math.round(2.5))
WScript.Echo(Math.round(2.555))
WScript.Echo(Math.round(2.555 * 10) / 10)
WScript.Echo(Math.round(2.555 * 100) / 100)''' ScriptOutput=> JavascriptOutput ScriptError=> ScriptError

 

Pythonで算出

Python
 
PythonのRound関数で注意しなければならないのは、PowrAutomateDesktopの仕様だと、偶数丸め(銀行丸め)が行われない、すなわち、一般的な四捨五入になっている、というところです。
Python_result
 
以下は、PythonIDLEで出力した結果ですが、round(2.5)=2、と偶数丸め(銀行丸め)になっています。
Python_IDE
 

Scripting.RunPythonScript PythonCode: $'''print(round(1.5))
print(round(2.5))
print(round(2.555, 0))
print(round(2.555, 1))
print(round(2.555, 2))''' ScriptOutput=> PythonScriptOutput ScriptError=> ScriptError

-アクション, スクリプト
-