默认情况下可以舍入数字吗?
Is possible to round numbers by default?
关于轮函数:
N decimal places.
Value := Round(Number [, N])
是否可以为所有值设置 'default' 行为,当它有超过 [2] 个位置时?
例如:
x := 9999
y := 3.5
z := x/y
msgbox %z%
z 输出:2856.857143
我怀疑是否可以在这种情况下 AutoHotkey
自动将数字四舍五入到 [2] 个位置,而无需我明确调用 round
函数。
那么z会输出2856.85
.
其中 [2] 可以是任何数字。
你可以这样使用:
x := 9999
y := 3.5
z := x/y
msgbox % "As Function with N = 2:`n" NRound( z, 2)
msgbox % "As Function with N = 3:`n" NRound( z, 3)
msgbox % "As Function with N = 4:`n" NRound( z, 4)
NRound( number, n ) {
main_result := SubStr( number, 1, pos := InStr( number, "." )+n )
if ( SubStr(number, pos+1, 1 ) > 5 )
main_result := SubStr( main_result, 1, -1 ) . SubStr(main_result, -0)+1
return main_result
}
如果您不想显式调用函数进行舍入,您可以使用:
SetFormat,IntegerFast, .2
默认值为 .6,您可能在上面的结果中注意到了这一点
如果在脚本顶部的 auto-execute 部分中使用,如果我没有记错任何数学运算,它将在整个脚本中全局使用。查看文档中的 SetFormat 以获得命令的完整描述,因为它也可以更普遍地用于总宽度。
关于轮函数:
N decimal places.
Value := Round(Number [, N])
是否可以为所有值设置 'default' 行为,当它有超过 [2] 个位置时?
例如:
x := 9999
y := 3.5
z := x/y
msgbox %z%
z 输出:2856.857143
我怀疑是否可以在这种情况下 AutoHotkey
自动将数字四舍五入到 [2] 个位置,而无需我明确调用 round
函数。
那么z会输出2856.85
.
其中 [2] 可以是任何数字。
你可以这样使用:
x := 9999 y := 3.5 z := x/y msgbox % "As Function with N = 2:`n" NRound( z, 2) msgbox % "As Function with N = 3:`n" NRound( z, 3) msgbox % "As Function with N = 4:`n" NRound( z, 4) NRound( number, n ) { main_result := SubStr( number, 1, pos := InStr( number, "." )+n ) if ( SubStr(number, pos+1, 1 ) > 5 ) main_result := SubStr( main_result, 1, -1 ) . SubStr(main_result, -0)+1 return main_result }
如果您不想显式调用函数进行舍入,您可以使用:
SetFormat,IntegerFast, .2
默认值为 .6,您可能在上面的结果中注意到了这一点
如果在脚本顶部的 auto-execute 部分中使用,如果我没有记错任何数学运算,它将在整个脚本中全局使用。查看文档中的 SetFormat 以获得命令的完整描述,因为它也可以更普遍地用于总宽度。