ReadDouble
ReadDouble у
BinaryReader
дополняет
Write
с double. После Write(1.5)
сравнение res == 1.5 даёт true.
Дробь не выводят через WriteLine
без формата - зависит от культуры.
Синтаксис
double value = reader.ReadDouble();
Пример
Давайте проверить равенство после Write(1.5):
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1.5);
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
double res = reader.ReadDouble();
Console.WriteLine(res == 1.5);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
True
Пример
Давайте убедиться, что в потоке 8 байт:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1.5);
int res = ms.ToArray().Length;
Console.WriteLine(res);
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
8
Пример
Давайте прочитать два double подряд:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1.5);
writer.Write(1.5);
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
bool first = reader.ReadDouble() == 1.5;
bool second = reader.ReadDouble() == 1.5;
Console.WriteLine(first);
Console.WriteLine(second);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
True
True
Смотрите также
-
ReadInt32,
чтение целых -
Write,
записьdouble -
Stream,
общий поток -
MemoryStream,
буфер в памяти