propage
14.06.2016, 18:11:21
wykonuje zapytanie typu
update featureValueML set `featureValue_name` = `featureValue_name` * 100 WHERE `featureValue_id` = 8
wartość przed tą operacją to 17.6, a po operacji
1760.0000000000002
skąd bierze się "0.0000000000002" ?
dodam że pole featureValue_name ma typ VARCHAR i tak musi pozostać.
przy przemnożeniu przez 10 mam prawidłową wartośc 176, gdy przemnożę przez 1000 to też mam poprawną wartość 1760, więc to bardzo dziwna sprawa. round załatwia sprawę.
Crozin
14.06.2016, 20:47:03
1. Standardowa lektura:
https://www.google.pl/search?q=what+every+p...me&ie=UTF-82. Trzymanie liczb w VARCHAR-ze? Dlaczego?
propage
16.06.2016, 15:50:20
murze w tej tabeli trzymać liczby jako varchar to bo sa cechy, a cechami raz mogą być liczby a mogą być też słowa.
Ale w przypadku gdy SA to liczby muszą zachowywać się jak liczby, a nie jak słowa.
Zmienianie typu pola w zależności czy akurat dana wartość jest numeryczna, czy nie dość znacznie skomplikuje mi prace, ale jeśli nie ma innego rozwiązania to tak trzeba będzie to zrobić.
Pyton_000
17.06.2016, 05:49:14
Kod
SELECT CAST('17.6' AS DECIMAL(10,2))*100;
Tylko musisz sobie jakiś warunek na to zrobić, albo obok dawać kolumnę z org. wartością. I jeśli ta z lewej == 0.00 to bierz war. z prawej.