Autohotkey |如何将Int更改为Double

时间:2016-09-24 21:45:02

标签: autohotkey

我想知道是否有办法将自动热键脚本的int值更改为double,因为我试图“微调”光标移动的速度并希望使用小数值。我能想到能够输入十进制值的唯一方法是使用double,但我无法弄清楚如何将int值更改为double(或者甚至可能)。

以下是代码,非常感谢您提前!!

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

; NRA
NRA := 1

; NR
~LButton::
while GetKeyState("LButton") & NRA
{
DllCall("mouse_event", uint, 1, int, 0, int, 1, uint, 0, int, 0)
Sleep, 15
DllCall("mouse_event", uint, 1, int, 0, int, 1, uint, 0, int, 0)
Sleep, 5
}
return

; keys
Insert::ExitApp
delete::suspend

我正在尝试将下面显示的Y值更改为小数点

DllCall("mouse_event", uint, 1, int, 0, int, Y, uint, 0, int, 0)
Sleep, 15
DllCall("mouse_event", uint, 1, int, 0, int, Y, uint, 0, int, 0)

我知道我改变Y值越高,它越快,但我希望能够将一个值(如1.5或2.7作为例子)放入Y位置。

1 个答案:

答案 0 :(得分:0)

在AutoHotkey v1.1中,浮点文字实际上只是字符串 对于浮点输出,它们的默认精度为6位小数,可以通过SetFormat,Format(),Round(),SubStr(),Floor()轻松更改它们以显示它们。 Source

如果您计划进行更大的精度数学运算,则需要使用Math library

我真的不确定你的代码,因为你从未指定过什么变量或显示你需要更高精度的数学?你有什么东西出去了吗?

双倍:

NRA := 1

MsgBox % format("{1:0.15f}", NRA) ; Double precision

根据您的修改:

不幸的是mouse_event只有DWORD除外,并且只接受0到4,294,967,295范围内的整数值。

您唯一的选择是增加1以获得最大控制权。