Witam! Szybkie pytanie. Mam zmienną typu float zapisaną w notacji naukowej (np. 1,23e+2) i mam problem bo z jakiegoś powodu nie mogę do tej liczby nic dodać. Jak to zrobić ? Dzięki za pomoc :D
Link do kodu: KOD
A kod?
Rozumiesz DOBRZE zagadnienia liczb zmiennoprzecinkowych? Masz świadomość, ze to jest po prostu LICZBA, która czasem BYWA drukowana w postaci naukowej?
Zagadnienia dokładności i reprezentacji. https://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa
Ile chcesz dodać? Skąd wnioskujesz, ze nie działa?
zdajesz sobie sprawę, że 1,111667E-07
to 0.000000111667
(o ile się w zerach nie machnąłem). Przy współrzędnych o wartości 300
to jest "pan pikuś"
Warto przeczytać o liczbach zmiennoprzecinkowych : https://eduinf.waw.pl/inf/alg/006_bin/0021.php.
Każdy szanujący się programista powinien to wiedzieć .
Liczby zmiennoprzecinkowe IEEE 754 pojedynczej precyzji tak wyglądają w pamięci :
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
float varFloat = 100f;
Console.WriteLine(varFloat);
int poz = 31;
unsafe
{
int*v =(int*) &varFloat;
for (int i = 0; i < 32; i++)
{
Console.CursorLeft = poz;
if ((*v & 1) == 1) Console.Write("1");
else
Console.Write("0");
*v = *v >> 1;
poz--;
}
}
Console.WriteLine();
}
}
}
Zamykam temat. Liczba jest zbyt mała żeby można było zobaczyć efekt dodania jej do pozycji Y obiektu tak jak pisał @abrakadaber. Dziękuję za pomoc :)