4L4K1 Ответов: 2

Почему происходит это странное преобразование double в string?


why this wierd convert double to string happens?



Я использую win 8.1 ,visual studio 2019 в ноутбуке это странно.
я использую win 10 , visual studio 2019 на ПК, и это нормально.

Что я уже пробовал:

double d=1.2;
string sWierd =""+d;//s=1/2
string sOk=d.ToString();//s=1.2

//both are not "1.2" for me so that is weird.
//weird one is "1/2". it changes dot to foreslash

2 Ответов

Рейтинг:
19

Christian Graus

В персидском языке косая черта-это десятичный разделитель

Десятичный разделитель - Википедия[^]

Я предполагаю, что один метод использует вашу локаль, а другой-нет, по какой-то причине?


4L4K1

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

Christian Graus

Похоже, что один метод находит значение по умолчанию, а другой использует текущую настройку? Звучит как интересная ошибка C#......

Рейтинг:
1

Dave Kreskowiak

О чем ты говоришь "странно"? Ничего странного не происходит. Обе строки имеют значение "1.2".

Если вы говорите о том, чтобы сделать это:

string sWeird = "" + d;

и удивляясь, почему это работает, это потому, что .ToString() вызывается неявно d чтобы сделать выражение string.Empty + d работа.