Inne działy

 

 

C# liczby zmiennoprzecinkowe

 

Liczby zmiennoprzecinkowe służą do reprezentowania liczb rzeczywistych w informatyce. Liczby rzeczywiste są używane do pomiaru ciągłych ilości. Jak waga, wzrost lub prędkości. W C # mamy trzy typy liczb zmiennoprzecinkowych: float, double i decimal.

 

C# Alias.NET TypeWielkośćPrecyzjaZasięg
float System.Single 4 bajty 7 znaków 1.5 x 10-45 to 3.4 x 1038
double System.Double 8 bajtów 15-16 znaków 5.0 x 10-324 to 1.7 x 10308
decimal System.Decimal 16 bajtów 28-29 miejsc po przecinku 1.0 x 10-28 to 7.9 x 1028

 Powyższa tabela przedstawia charakterystykę typów zmiennoprzecinkowych.

Domyślnie liczby rzeczywiste są typu double w C #. Aby użyć innego typu, musimy użyć przyrostka. F/f dla liczb zmiennoprzecinkowych i M/m dla liczb dziesiętnych.

 

using System;

class CSharpApp
{
static void Main()
{
float n1 = 1.234f;
double n2 = 1.234;
decimal n3 = 1.234m;

Console.WriteLine(n1);
Console.WriteLine(n2);
Console.WriteLine(n3);

Console.WriteLine(n1.GetType());
Console.WriteLine(n2.GetType());
Console.WriteLine(n3.GetType());
}
}

W powyższym programie, możemy użyć trzech różnych dosłownych zapisów dla liczb zmiennoprzecinkowych.

float n1 = 1.345f;

Przedrostek f jest używany dla liczb typu float.

double n2 = 1.345;

Jeśli nie użyjemy przedrostka to domyślnie liczba jest typu double.

Console.WriteLine(n1.GetType());

Metoda GetType() zwraca typ liczby.

$ ./zmiennoprzecinkowe.exe
1.354
1.345
1.345
System.Single
System.Double
System.Decimal

Powyżej wynik działania programu.

 


 

Możemy korzystać z różnych składni do tworzenia wartości zmiennoprzecinkowych.

 

using System;

class CSharpApp
{
static void Main()
{
float n1 = 1.234f;
float n2 = 1.2e-3f;
float n3 = (float) 1 / 3;

Console.WriteLine(n1);
Console.WriteLine(n2);
Console.WriteLine(n3);
}
}

Mamy trzy sposoby tworzenia wartości zmiennoprzecinkowych. Pierwszy to "normalny" sposób, za pomocą przecinka. Drugi używa notacji naukowej. I ostatni w wyniku operacji liczbowej.

float n2 = 1.2e-3f

To jest notacja naukowa dla liczb zmiennoprzecinkowych. Znany także jako notacja wykładnicza, to jest sposób pisania liczb zbyt dużych lub małych, aby być wygodnie napisana w standardowym systemie dziesiętnym.

float n3 = (float) 1 / 3;

Konstrukcja (Float) jest nazywana casting. Dzielenie zwraca liczby całkowite domyślnie. Dodając konstrukcje (Float) dostajemy liczbę typu float.

$ ./fnotacja.exe

1.234

0.0012

0.3333333

Powyżej wynik działania programu.

 


 

using System;

class CSharpApp
{
static void Main()
{
float n1 = (float) 1 / 3;
double n2 = (double) 1 / 3;

if (n1 == n2)
{
Console.WriteLine("Liczby są równe");
} else {
Console.WriteLine("Liczby nie są równe");
}
}
}

Float i double są wartościami przechowywane z różną precyzją. Należy zachować ostrożność przy porównywaniu wartości zmiennoprzecinkowych.

$ ./frowna.exe

Liczby nie są równe


Powiedzmy, że sprinter 100m przebiegł w 9.87s. Jaka jest jego prędkość w km/h?

 

using System;

class CSharpApp
{
static void Main()
{
float dystans;
float czas;
float predkosc;

// 100m is 0.1 km

dystans = 0.1f;

// 9.87s is 9.87/60*60 h

czas = 9.87f / 3600;

predkosc = dystans / czas;

Console.WriteLine("Średnia prędkość sportowca jest {0} km/h", predkosc);
}
}

 W tym przykładzie, konieczne jest zastosowanie wartości zmiennoprzecinkowych.

 predkosc = dystans / czas;

 Aby uzyskać prędkość, należy podzielić  odległość przez czasu.

 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.