Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обработка дробных чисел

Ответить
Настройки темы
CMD/BAT - [решено] Обработка дробных чисел

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.

Такой вопрос. Вводится какое-либо дробное число, например 10,25. Как его обработать, чтобы дробная часть не пропадала?
Например, можно ли разбить его на две других переменные с целой и дробной частью, типа а=10; в=25?
Или есть ещё какой нибудь способ?

Отправлено: 22:15, 28-06-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Мсье, конечно, знает толк в извращениях. Но проще перейти к использованию WSH/PowerShell.

Что в данном конкретном случае значит «обработать»?

Отправлено: 01:09, 29-06-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Если бы я сам хотел так извращаться.
Перейти, к сожалению, никак.

В данном случае мне нужно такое вот число перевести в двоичный вид. Перевод я сделал, а вот как сделать так, чтобы не отбрасывалась дробная часть - не знаю.

Отправлено: 16:11, 29-06-2016 | #3


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Цитата newbibot:
как сделать так, чтобы не отбрасывалась дробная часть »
Код: Выделить весь код
2>nul set /a a=56.36
echo %a%
Просто отбрасывает, не округляет

Отправлено: 17:31, 29-06-2016 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
Просто отбрасывает, не округляет »
Не совсем понял в чём фишка.
Мне нужно дробную часть тоже перевести. Но вот как её "поймать", чтобы она никуда не отбрасывалась и не округлялась, и чтобы потом её можно было перевести в двоичный вид - в этом весь вопрос.

Отправлено: 17:53, 29-06-2016 | #5


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


newbibot, А как вообще дроби переводятся в дробное двоичное число? Будет ли верной запись:
Код: Выделить весь код
56.36 = 100100111000
Вот в чем вопрос. Разделить 56.36 на 56 и 36 легко, каждое из полученных перевести в двоичные числа тоже не составит труда, а вот будет ли это правильным?
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set "double=56,36"

for %%i in (%double%) do call:0 %%i
echo %result%

goto:eof

:0
set dec=%1
:loop

if %dec%==1 (

	set bin=1!bin!
	set result=!bin!
	goto:eof

)

for /f %%i in ('set /a dec%%2') do (
	
	set bin=%%i!bin!
	if %%i==1 set /a dec-=1
	set /a dec/=2
	goto:loop

)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:42, 29-06-2016 | #6


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
newbibot, А как вообще дроби переводятся в дробное двоичное число? Будет ли верной запись:

56.36 = 100100111000 »
Вообще не понял, откуда вы взяли это число.
Что в онлайне, что в моей проге 56.36 = 111000.0110

Да и опять же, суть не в переводе, этого вопроса вообще не стоит.

Цитата Foreigner:
Разделить 56.36 на 56 и 36 легко »
Это вот то мне и надо. Только вот число вводит пользователь.
Вот стоит у меня

set /p num = Число:

И вводят туда любое число вида XY,QZ. Что мне потом делать с ним?

Отправлено: 19:18, 29-06-2016 | #7


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Цитата newbibot:
Что в онлайне, что в моей проге 56.36 = 111000.0110 »
Поэтому и спрашивал. Как переводятся дроби в двоичные дроби? Мне не настолько это нужно, чтобы искать решение ради вас.
Цитата newbibot:
Это вот то мне и надо. »
И в чем проблема? Возьмите из примера выше:
Код: Выделить весь код
set /p b="Enter double value with comma delimiter: "
for %%i in (%b%) do echo %%i
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 29-06-2016 | #8


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
И в чем проблема? »
Проблема в том, что я только начал со всем этим разбираться и не совсем пока разбираюсь. Так то код ваш код мне понятен, но я не могу сделать так, чтобы это записалось в переменные, а не просто выводилось на экран.

Пытался сделать как то так, но не работает.
Код: Выделить весь код
for %%i in (%number%) do (
set a%k% = %%i
set/a k=%k%+1
)
Если сможете и с этим помочь, то это будет последний штрих.
Спасибо.

Отправлено: 19:57, 29-06-2016 | #9


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


newbibot,
Код: Выделить весь код
set d=56,36

for /f "tokens=1,2 delims=," %%i in ("%d%") do (
    set "a=%%i"
    set "b=%%j"
)

echo %a% %b%
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:16, 29-06-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обработка дробных чисел

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Дешифровка чисел craetop Хочу все знать 8 04-12-2015 05:06
CMD/BAT - Сравнение чисел AlekseyB. Скриптовые языки администрирования Windows 7 03-09-2014 13:16
CMD/BAT - Сложение чисел в переменной Доктор Ливси Скриптовые языки администрирования Windows 2 12-01-2012 13:15
C/C++ - Последовательность чисел denver-312 Программирование и базы данных 7 02-01-2008 20:54
сортировка чисел slaine Вебмастеру 12 18-02-2006 20:17




 
Переход