1

Тема: AHK: Количество знаков после запятой

На вход поступает целое число, либо число с плавающей точкой. Скрипт должен определить, не превышает ли количество знаков после точки  заданное количество (к примеру 4).
Существуют ли стандартные способы?

2 (изменено: Malcev, 2018-04-08 16:17:38)

Re: AHK: Количество знаков после запятой

Думаю нет. Только типа такого что-то делать:

digit := 3.01, maxcount := 2

If InStr(digit, ".") and (StrLen(RTrim(digit, "0")) - InStr(digit, ".") > maxcount)
   msgbox Not Ok
else
   msgbox Ok

3

Re: AHK: Количество знаков после запятой

digit := 3.23, maxcount := 2 
MsgBox % !InStr(digit, ".", 0, (maxcount + 1) * -1)  ; 1 - не превышает
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

4

Re: AHK: Количество знаков после запятой

В таком случае показывает неверный результат:

digit := 3.000, maxcount := 2 
MsgBox % !InStr(digit, ".", 0, (maxcount + 1) * -1)  ; 1 - не превышает

5

Re: AHK: Количество знаков после запятой

Почему? Ноль же возвращает, количество после точки больше 2.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

6

Re: AHK: Количество знаков после запятой

3.000 - это целое число.

7

Re: AHK: Количество знаков после запятой

Про замыкающие нули не видел в задании ни слова.

digit := 0.340, maxcount := 2
MsgBox % Round(digit + 0, maxcount) = digit
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

8

Re: AHK: Количество знаков после запятой

Или тут ноль в конце уже должен учитыватся?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

9

Re: AHK: Количество знаков после запятой

Да, требуется учесть все цифры после точки, в том числе ноль.

10 (изменено: svoboden, 2018-04-08 19:43:07)

Re: AHK: Количество знаков после запятой

Malcev, может, я чего не понимаю, но у меня выводит "Ок", если число будет таким:

entrance := 3.130, count := 2

11

Re: AHK: Количество знаков после запятой

ypppu пишет:

Да, требуется учесть все цифры после точки, в том числе ноль.

Ну тогда 3 пост.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

12

Re: AHK: Количество знаков после запятой

svoboden пишет:

Malcev, может, я чего не понимаю, но у меня выводит "Ок", если число будет таким:

entrance := 3.130, count := 2

В моём варианте нули идущие в конце дробной части подчищаются, поэтому выводит OK.

13

Re: AHK: Количество знаков после запятой

В моём случае полностью подошёл вариант от serzh82saratov.