<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - EvgeniyT</title>
		<link>https://www.cyberforum.ru/blogs/1005821/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Tue, 08 Sep 2026 13:10:31 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - EvgeniyT</title>
			<link>https://www.cyberforum.ru/blogs/1005821/</link>
		</image>
		<item>
			<title>Сравнение чисел с плавающей точкой</title>
			<link>https://www.cyberforum.ru/blogs/1005821/5617.html</link>
			<pubDate>Thu, 10 Jan 2019 17:41:10 GMT</pubDate>
			<description>Нашёл интересную информацию и что бы не потерять выложу сюда. Читайте как справочник. 
 
Типы...</description>
			<content:encoded><![CDATA[<div>Нашёл интересную информацию и что бы не потерять выложу сюда. Читайте как справочник.<br />
<br />
Типы данных double и float хранят приближённое значение числа, на столько, на сколько хватает их точности. Поэтому нужно быть аккуратным при сравнении таких чисел на равенство.<br />
<br />
Рассмотрим такой код:<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="736949987"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="736949987" style="height: 206px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="de1"><pre class="de1">1public <span class="kw1">static</span> <span class="kw4">void</span> WrongMain<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="nu0">2</span><span class="br0">&#123;</span>
<span class="nu0">3</span> &nbsp; &nbsp;<span class="co1">// в бинарном виде 0.1 представляется бесконечной дробью 0.00011001100...,</span>
<span class="nu0">4</span> &nbsp; &nbsp;<span class="co1">// в типах данных float и double хранится только начало этой дроби,</span>
<span class="nu0">5</span> &nbsp; &nbsp;<span class="co1">// поэтому число 0.1 представляется с погрешностью. </span>
<span class="nu0">6</span> &nbsp; &nbsp;<span class="kw4">double</span> x <span class="sy0">=</span> <span class="nu0">1.0</span> <span class="sy0">/</span> <span class="nu0">10</span><span class="sy0">;</span> 
<span class="nu0">7</span> &nbsp; &nbsp;<span class="kw4">double</span> sum <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="nu0">8</span> &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
<span class="nu0">9</span> &nbsp; &nbsp; &nbsp; &nbsp;sum <span class="sy0">+=</span> x<span class="sy0">;</span>
<span class="nu0">10</span> &nbsp; &nbsp;Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>sum <span class="sy0">==</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="nu0">11</span><span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>Кажется, что он должен вывести True, однако на самом деле выводит False.<br />
<br />
При выполнении этих операций, погрешность накапливается, и это приводит к неверным результатам.<br />
<br />
Для того, чтобы избежать этого, при сравнивать числа с плавающей точкой нужно с учётом погрешности, вот так:<br />
<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="665217515"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="665217515" style="height: 158px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
</pre></td><td class="de1"><pre class="de1">1static <span class="kw4">void</span> RightMain<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="nu0">2</span><span class="br0">&#123;</span>
<span class="nu0">3</span> &nbsp; &nbsp;<span class="kw4">double</span> x <span class="sy0">=</span> <span class="nu0">1.0</span> <span class="sy0">/</span> <span class="nu0">10</span><span class="sy0">;</span>
<span class="nu0">4</span> &nbsp; &nbsp;<span class="kw4">double</span> sum <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
<span class="nu0">5</span> &nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
<span class="nu0">6</span> &nbsp; &nbsp; &nbsp; &nbsp;sum <span class="sy0">+=</span> x<span class="sy0">;</span>
<span class="nu0">7</span> &nbsp; &nbsp;Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>Math<span class="sy0">.</span><span class="me1">Abs</span><span class="br0">&#40;</span>sum <span class="sy0">-</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">&lt;</span> 1e<span class="sy0">-</span>9<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="nu0">8</span><span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>Здесь мы проверяем, что числа равны не в точности, но что модуль их разности меньше некоторого маленького числа. Всегда используйте такую конструкцию при сравнении чисел с плавающей точкой.</div>

]]></content:encoded>
			<dc:creator>EvgeniyT</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1005821/5617.html</guid>
		</item>
		<item>
			<title>Установка Visual Studio Code в Ubuntu 18.04</title>
			<link>https://www.cyberforum.ru/blogs/1005821/5512.html</link>
			<pubDate>Tue, 06 Nov 2018 07:03:59 GMT</pubDate>
			<description>Доброго здравия. Информации на просторах интернета или очень много или катастрофически не хватает....</description>
			<content:encoded><![CDATA[<div>Доброго здравия. Информации на просторах интернета или очень много или катастрофически не хватает. Но и в том и другом случае её приходится собирать по крупицам.<br />
В этой статье мне хотелось бы более точно и подробно рассказать о установке и настройке Visual Studio Code под Ubuntu 18.04. Сразу скажу не пытайтесь это повторить <font color="Red">на Ubuntu 18.10 работать не будет.</font> И так приступим.<br />
<br />
Открываем наш любимый терминал и вводим следующие команды:<br />
<br />
	
			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="417478353"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="417478353" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">wget</span> <span class="re5">-q</span> https:<span class="sy0">//</span>packages.microsoft.com<span class="sy0">/</span>config<span class="sy0">/</span>ubuntu<span class="sy0">/</span><span class="nu0">18.04</span><span class="sy0">/</span>packages-microsoft-prod.deb</pre></td></tr></table></div></td></tr></tbody></table></div>	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="910896900"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="910896900" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">dpkg</span> <span class="re5">-i</span> packages-microsoft-prod.deb</pre></td></tr></table></div></td></tr></tbody></table></div>	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="307274738"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="307274738" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">apt-get install</span> apt-transport-https</pre></td></tr></table></div></td></tr></tbody></table></div>	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="671434991"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="671434991" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">apt-get update</span></pre></td></tr></table></div></td></tr></tbody></table></div>	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="359182283"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="359182283" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">apt-get install</span> aspnetcore-runtime-<span class="nu0">2.1</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
Таким образом мы установим среду выполнения .NET Core и среду выполнения ASP.NET Core. Чтобы установить только среду выполнения .NET Core, используйте пакет<br />
	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="873220645"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="873220645" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">apt-get install</span> dotnet-runtime-<span class="nu0">2.1</span></pre></td></tr></table></div></td></tr></tbody></table></div>Возможно появление ошибки:<br />
	
			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="276899312"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="276899312" style="height: 142px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
</pre></td><td class="de1"><pre class="de1"><span class="kw2">sudo</span> <span class="kw2">apt-get install</span> dotnet-sdk-<span class="nu0">2.1</span>
&nbsp; &nbsp; Чтение списков пакетов… Готово
&nbsp; &nbsp; Построение дерева зависимостей &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; Чтение информации о состоянии… Готово
&nbsp; &nbsp; E: Не удалось найти пакет dotnet-sdk-2.1.0
&nbsp; &nbsp; E: Не удалось найти пакет с помощью glob «dotnet-sdk-2.1.0»
&nbsp; &nbsp; E: Не удалось найти пакет с помощью regex «dotnet-sdk-2.1.0»</pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
В таком случае допилим ручками и отправляемся сразу на страничку <a rel="nofollow noopener noreferrer" href="https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/d/dotnet-sdk-2.1/" target="_blank" title="https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/d/dotnet-sdk-2.1/">https://packages.microsoft.com... t-sdk-2.1/</a> где и скачиваем нужный нам пакет и с помощью менеджера установки программ или нашего любимого терминала (кому как больше нравится) устанавливаем сие чудо.<br />
<br />
Проверить всё ли у вас получилось очень просто. Терминал нам в помощь!<br />
	<div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="91290528"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="91290528" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1">dotnet &nbsp;<span class="re5">--info</span></pre></td></tr></table></div></td></tr></tbody></table></div>и в ответ получаем:<br />
	
			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="bash"><thead><tr><td colspan="2" id="591464062"  class="head">Bash</td></tr></thead><tbody><tr class="li1"><td><div id="591464062" style="height: 270px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="de1"><pre class="de1">Пакет SDK для .NET Core <span class="br0">&#40;</span>отражающий любой global.json<span class="br0">&#41;</span>:
&nbsp; &nbsp; &nbsp;Version: &nbsp; 2.1.403
&nbsp; &nbsp; &nbsp;Commit: &nbsp; &nbsp;04e15494b6
&nbsp; &nbsp; Среда выполнения:
&nbsp; &nbsp; &nbsp;OS Name: &nbsp; &nbsp; ubuntu
&nbsp; &nbsp; &nbsp;OS Version: &nbsp;<span class="nu0">18.04</span>
&nbsp; &nbsp; &nbsp;OS Platform: Linux
&nbsp; &nbsp; &nbsp;.NET Core SDKs installed:
&nbsp; &nbsp; &nbsp; 2.1.403 <span class="br0">&#91;</span><span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>dotnet<span class="sy0">/</span>sdk<span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp;.NET Core runtimes installed:
&nbsp; &nbsp; &nbsp; Microsoft.AspNetCore.All 2.1.5 <span class="br0">&#91;</span><span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>dotnet<span class="sy0">/</span>shared<span class="sy0">/</span>Microsoft.AspNetCore.All<span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; Microsoft.AspNetCore.App 2.1.5 <span class="br0">&#91;</span><span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>dotnet<span class="sy0">/</span>shared<span class="sy0">/</span>Microsoft.AspNetCore.App<span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; Microsoft.NETCore.App 2.1.5 <span class="br0">&#91;</span><span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>dotnet<span class="sy0">/</span>shared<span class="sy0">/</span>Microsoft.NETCore.App<span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp;To <span class="kw2">install</span> additional .NET Core runtimes or SDKs:
&nbsp; &nbsp; &nbsp;https:<span class="sy0">//</span>aka.ms<span class="sy0">/</span>dotnet-download</pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
Поздравляю с успешной установкой .Net Core 2.1<br />
<br />
Прежде чем продолжить немного окунёмся в историю. Сейчас мы будем устанавливать VS Code, но что это за зверь такой? Давайте посмотри. Visual Studio Code основан на Electron — фреймворк, позволяющий с использованием Node.js и разрабатывать настольные приложения, которые работают на движке Blink. Несмотря на то, что редактор основан на Electron, он не использует редактор Atom. Вместо него реализуется веб-редактор Monaco, разработанный для Visual Studio Online. (wiki) <br />
А получилось по мне так средненько, но продолжим.<br />
<br />
Скачиваем VS Code отсюда <a rel="nofollow noopener noreferrer" href="https://code.visualstudio.com/" target="_blank" title="https://code.visualstudio.com/">https://code.visualstudio.com/</a><br />
<br />
Полученный файл опять таки запускаем при помощи установщика программ или любимого терминал. Дам совет. Не устанавливайте VS Code из менеджера приложений. Там он ставится через раз нормально, то есть после установки вы такие работает, а он фига себе и закрылся. Вот она неприятность и ничего не сохранилось. Обидно будет.</div>

]]></content:encoded>
			<dc:creator>EvgeniyT</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1005821/5512.html</guid>
		</item>
	</channel>
</rss>
