Не выполняется кубик C#

xx_kid_xx

Пользователь
Регистрация
12.05.2016
Сообщения
124
Благодарностей
4
Баллы
18
Всем привет!

Подскажите, пожалуйста, почему может не выполняться вот такой код ( со значением в переменной, например, 103.92 ):

C#:
string x = project.Json.fills[0].qty;
double x = Convert.ToDouble(x);

return x;
При этом такой вот выполняется:

C#:
string x = project.Json.fills[0].qty;

return x;
 

infosimple

Client
Регистрация
01.01.2015
Сообщения
427
Благодарностей
61
Баллы
28
Объявил 2 раза переменную x.
сделай так:
C#:
string x = project.Json.fills[0].qty;
double y = Convert.ToDouble(x);
return y;
или вообще так:
C#:
string x = project.Json.fills[0].qty;
return Convert.ToDouble(x);
И учти, в переменной project.Json.fills[0].qty должна быть строка с плавающей запятой, а не точкой.

Но для чего тогда приводить к типу double?
 

xx_kid_xx

Пользователь
Регистрация
12.05.2016
Сообщения
124
Благодарностей
4
Баллы
18
Объявил 2 раза переменную x.
сделай так:
C#:
string x = project.Json.fills[0].qty;
double y = Convert.ToDouble(x);
return y;
или вообще так:
C#:
string x = project.Json.fills[0].qty;
return Convert.ToDouble(x);
И учти, в переменной project.Json.fills[0].qty должна быть строка с плавающей запятой, а не точкой.

Но для чего тогда приводить к типу double?
Увы, но оба варианта выдают ошибку "Выполнение действия CSharp OwnCode. Входная строка имела неверный формат.".

А привести к double хочу, чтобы в этом же кубике выполнить арифметические операции.
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
330
Благодарностей
243
Баллы
43

xx_kid_xx

Пользователь
Регистрация
12.05.2016
Сообщения
124
Благодарностей
4
Баллы
18

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Увы, но оба варианта выдают ошибку "Выполнение действия CSharp OwnCode. Входная строка имела неверный формат.".
С очень большой долей вероятности проблема в точке, о чём было упомянуто в этом сообщении. Замените точку на запятую и всё заработает.
 
  • Спасибо
Реакции: xx_kid_xx

xx_kid_xx

Пользователь
Регистрация
12.05.2016
Сообщения
124
Благодарностей
4
Баллы
18
С очень большой долей вероятности проблема в точке, о чём было упомянуто в этом сообщении. Замените точку на запятую и всё заработает.
Благодарю! Проблема действительно была в точке.

Но вообще странно, что C# не может преобразовать строку с точкой. Мне казалось, что на западе как раз точкой разделяется целая и дробная части, и по идее проблем с этим не должно было бы быть.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Благодарю! Проблема действительно была в точке.

Но вообще странно, что C# не может преобразовать строку с точкой. Мне казалось, что на западе как раз точкой разделяется целая и дробная части, и по идее проблем с этим не должно было бы быть.
.Net зависит от локали, поэтому необходимо явно указывать универсальный способ, как в моих примерах.
 
  • Спасибо
Реакции: xx_kid_xx

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)