0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 13
.NET 4.x

Преобразование данных массива из string в double

12.01.2014, 14:14. Показов 3340. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи, помогите пожалуйста! Необходимо считать построчно числовые данные из файла и в конечном итоге сформировать из них массив с данными типа double. Пытаюсь сделать следующим образом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; //Подключаем пространство имен для работы с файлами
 
namespace начало
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        const string fileName = "b.txt";
        private void button1_Click(object sender, EventArgs e)
        {
            StreamReader streamReader = new StreamReader("b.txt"); //Открываем файл для чтения
            string[]B = streamReader.ReadToEnd().Split('\n');
            int[] D = B.Select(x => int.Parse(x)).ToArray();
        
        }
    }
}
Но при отладке выдаёт такое сообщение -
"Необработанное исключение типа "System.FormatException" произошло в mscorlib.dll
Дополнительные сведения: Входная строка имела неверный формат."
Как быть?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2014, 14:14
Ответы с готовыми решениями:

Преобразование string в double
У меня есть массив типа string, в котором хранятся нецелые числа. Надо отсортировать массив по убыванию, но для этого надо преобразовать...

Преобразование double в string
Нужно преобразовать double в строку. Знаю про функции ostringstream и stod(), но их проблема в том, что они округляют значения. Допустим,...

Преобразование Double в string
Допустим у меня есть число double n = 0.0000000000 мне нужно преобразовать его в строку string s = 0.0000000000. Как это сделать?

5
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
12.01.2014, 14:28
Здравствуйте.
сформировать из них массив с данными типа double
C#
1
int[] D = //...
Непонятно.
Все зависит от того в каком виде содержимое файла, а именно что является разделителем для целой и дробной частей чисел: ',' или '.' .
В первом случае можно сделать так:
C#
1
2
string[] B = File.ReadAllLines("b.txt");
double[] D = B.Select(x => double.Parse(x)).ToArray();
Во втором:
C#
1
2
string[] B = File.ReadAllLines("b.txt");
double[] D = B.Select(x => double.Parse(x, CultureInfo.GetCultureInfo("en-US")).ToArray();
1
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 13
12.01.2014, 19:38  [ТС]
А, ну да, конечно
C#
1
double[] D = //...
Разделители - точки. При использовании фрагмента:
C#
1
2
string[] B = File.ReadAllLines("b.txt");
double[] D = B.Select(x => double.Parse(x, CultureInfo.GetCultureInfo("en-US")).ToArray();
вылезает ошибка: "Элемент "CultureInfo" не существует в текущем контексте"
Подскажите пожалуйста
0
54 / 71 / 20
Регистрация: 26.06.2013
Сообщений: 194
12.01.2014, 19:53
Выше строчкой напишите
C#
1
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
1
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 13
12.01.2014, 19:53  [ТС]
Всё, разобрался, спасибо, всё получилось.
0
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
12.01.2014, 22:08
Региональные настройки для текущего потока лучше не менять не будучи уверенным что это нигде не повлияет на правильность вычислений. К примеру для настроек США запятая отделяет десятичные разряды числа.
Лучше пропишите
C#
1
using System.Globalization;
, о чем я, конечно, должен был вам сказать, пардоньте.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2014, 22:08
Помогаю со студенческими работами здесь

Преобразование string в double
Такой код не прокатывает: double chislo=Double.parseDouble(R.string.about_text3) Как сделать, чтобы работало?

Преобразование string в double
Добрый день Столкнулся с такой проблемой. В лейбл подается число формата "х.хххх". Когда я пытаюсь преобразовать в обратно в...

Преобразование string в double
Как преобразовать string в double?

Преобразование string в double
Как преобразовать string в double? double d = double.Parse(textBox2.Text);

Преобразование из string в double
Вот простой пример демонстрирующий данную проблему: Так работает: #include <iostream> #include <cstdlib> int main() ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru