Jak pomnożyć liczby Double zawarte w TextBox ?

Jak pomnożyć liczby Double zawarte w TextBox ?
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam
TextBox1.Text = 0.00005139
TextBox2.Text = 212.04862376

Moim zadaniem jest pomnożyć wartość TextBox1 na wartość TextBox2 i później pomnożyć na 0.0022 (i wynik chce aby był do 8 znaków po przecinku)

Nie wiem czemu mi błąd zwraca gdy chcę to pomnożyć...

Kopiuj
 TextBox5.Text = CStr(CDbl(TextBox1.Text) * CDbl(TextBox2.Text) * 0.0022)
  • Rejestracja: dni
  • Ostatnio: dni
0

FormatNumber(0.00005139 * 212.04862376 * 0.0022, 8)

Czy zastosowanie tego będzie odpowiednie ?

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Musisz najpierw przekonwertować string na double. Na przykład używając takiego kodu:

Kopiuj
string first = "0.00005139";
string second = "212.04862376";

double a = 0;
double b = 0;

if(!double.TryParse(first, out a))
{
    // Obsługa błędu
}
if(!double.TryParse(second, out b))
{
    // Obsługa błędu
}
double result = a * b;

Aby sformatować z powrotem do string:

Kopiuj
string resultAsString = result.ToString("N8");

EDIT - myślałem że chodzi o C#

  • Rejestracja: dni
  • Ostatnio: dni
0

kurde już głupieje z tymi liczbami...
a jak prawidłowo wykonać to:
0, 1170305 - 0, 1164777

i wartość wyświetlićdo msgBox

Kopiuj
 MsgBox(0, 1170305 - 0, 1164777)
``` zwraca dziwne wartości..próbowałem już stosować i FormatNumber i CDbl...nic nie pomaga
atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Odpowiadając na Twoje pytanie - musisz użyć kropki jako separatora dziesiętnego, nie przecinka.

  • Rejestracja: dni
  • Ostatnio: dni
0

akurat odkryłem że to mi działa:
MsgBox(CDec(0.1170305) - CDec(0.1164777))
ale zaraz sprubóję normalnie bez Decimal :P
dzięki

  • Rejestracja: dni
  • Ostatnio: dni
0

Wszystko byłoby fajnie ale nie wiem czemu te przecinki wkradły się do większości moich wartości double ;/
nie wiem jak mam teraz odejmować od siebie zmiennie typu Dbl skoro one mają w sobie przecinki zamiast kropki =/

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Nie możesz w IDE pozmieniać wszystkie przecinki na kropki, coś w stylu *Replace All?

  • Rejestracja: dni
  • Ostatnio: dni
0

mysle że po prostu trzeba jakos sensownie przekonwertować string na Double...jakąś funkcję napisać co nie bedzie robić przecinkow

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Niestety nie wiem jak to zrobić w VB.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dim X As Double = FormatNumber(CDbl(Val(TextBox1.Text)) * CDbl(Val(TextBox2.Text)), 8)
mi to działa najlepiej i Od razu ogranicza do 8 cyfr po przecinku...ale niestety ...przecinek wstawia zamiast kropkę

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Gdzieś musisz zmienić ustawienia kulturowe (w kodzie).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.