Вверх ↑
Этот топик читают: Гость
Ответов: 8
Рейтинг: 0
#1: 2013-08-26 04:59:25 ЛС | профиль | цитата
Давно HiAsm не пользовал. Щас вот увидел пакет CNET и решил, что он отлично подойдёт для W8, которая стоит у чела, которому я хочу сделать простенький конвертор, чтобы вспомнить что к чему в HiAsm. Поставил эту сборку http://forum.hiasm.com/forum.html?q=3&p=210696#p210696.

Проблема в том, что многово не помню. Надеюсь кто нибудь освежит мою память.
Получаю ошибку Input string was not in a correct format при попытке прочитать число с точкой.

Как перевести строку в число с плавающей запятой?

Челу пока кинул такую версию:
code_31658.txt
карма: 1

0
файлы: 1code_31658.txt [2KB] [403]
Ответов: 704
Рейтинг: 44
#2: 2013-08-26 05:17:03 ЛС | профиль | цитата
Erquint писал(а):
Как перевести строку в число с плавающей запятой?

А как ты думаешь как можно строку перевести в число? Наверное есть какой-то конвертор BitConverter
карма: 0

0
Ответов: 8
Рейтинг: 0
#3: 2013-08-26 07:29:40 ЛС | профиль | цитата
Kazbek17 писал(а):

Дак ведь нет такого в пакете CNET. Под dotNet типизация другая. Но парсить он у меня ни в какую не хочет.

Даже так пробовал:
Add(Inline,12644159,371,448)
{
VarPoints=#6:Output|
DataPoints=#5:Input|
Code="private float Output()\r\n{\r\n return float.Parse(sys.Input);\r\n}"
}

#cpp
private float Output()
{
return float.Parse(sys.Input);
}
и
#cpp
Convert.ToSingle()
тоже, но результат всегда один — при попытке парсинга string в single(float), парсер захлёбывется. При непосредственной передаче stкing'а math'у, он также захлёбывается на попытке парсинга в абстрактный тип number.

P.S.
В интернетах советуют пользовать CultureInfo.InvariantCulture.NumberFormat, но HiAsm ругается, что The name 'CultureInfo' does not exist in the current context.

Появилось ощущение, будто .NET в HiAsm сильно кастрирован.
карма: 1

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#4: 2013-08-26 10:35:27 ЛС | профиль | цитата
Пакет CNET делается под англоговорящих пользователей. Используется соответствующий формат чисел (разделитель запятая).
formatuk.png
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1formatuk.png [14.8KB] [661]
Ответов: 16884
Рейтинг: 1239
#5: 2013-08-26 12:47:31 ЛС | профиль | цитата
Nic писал(а):
Пакет CNET делается под англоговорящих пользователей. Используется соответствующий формат чисел (разделитель запятая).
Всё время почему-то думал, что у англоязычных десятичный разделитель точка.
ds.png
Nic, а что нельзя применить что-то типа:

Char separator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];
String Source = "0,02".Replace( ',' , separator);
Double number = Convert.ToDouble(Source);
чтобы применялся тот формат, который выбран в системе ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1ds.png [62.1KB] [635]
Главный модератор
Ответов: 2999
Рейтинг: 396
#6: 2013-08-26 15:21:00 ЛС | профиль | цитата
Tad, вариантов решения проблемы может быть больше чем одно. Например, переключить формат чисел в CP или сделать компонент переключения локалей или установить соответствующий языковой пакет Framework'a .NET
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 8
Рейтинг: 0
#7: 2013-08-26 23:32:44 ЛС | профиль | цитата
Преследуя цель парсить как запятые, так и точки, набросал это:

Inline компонент.
code_31671.txt

Непосредственно код.
code_31672.txt

Кому то есть, что добавить?
карма: 1

0
файлы: 2code_31671.txt [370B] [458], code_31672.txt [239B] [441]
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)