webForumDet fria alternativet

decimaler

14 svar · 323 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

Försöker skriva ut ett decimaltal från databasen, kolumnen är av typen decimal.
När jag kör en response.write på talet får jag ut 705 när det borde vara 7,05
Nån som vet varför?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

Känner igen det där.. databastyp?

aleborgMedlem sedan jan. 20013 341 inlägg
#3

MySQL

LarsGMedlem sedan dec. 200012 464 inlägg
#4
query="select cast(cast(col as decimal(10,2)) as char(12)) as rounded from t"
set rs = connect.execute(query)
while not rs.eof
  response.write rs("rounded") & "<br>"
  rs.novenext
wend
aleborgMedlem sedan jan. 20013 341 inlägg
#5

Men om jag använder getrows då? Då kan jag ju inte skriva rs("rounded") !

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Om du använder getrows eller inte har ingen betydelse

if not rs.eof then
   arr = rs.getrows()
   for i = 0 to ubound(arr,2)
        response.write arr(0,i) & "<br>"
   next
end if
aleborgMedlem sedan jan. 20013 341 inlägg
#7

provade det men fick följande fel:

You have an error in your SQL syntax near '(cast(My_Tips_Score as decimal(10,2)) as char(12)) as rounded From My_Tips Inner' at line 1

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Mysql alltså, om du testar så här då?

query="select cast(round(My_Tips_Score ,2) as char(12)) as rounded from My_Tips"
aleborgMedlem sedan jan. 20013 341 inlägg
#9

får felet:
[TCX][MyODBC]You have an error in your SQL syntax near '(round(My_Tips_Score ,2) as char(12)) as rounded From My_Tips Inner Join Matcher' at line 1

min select:

speladem = getDbRows(connstr, "Select My_Tips_Lag_1, My_Tips_Lag_2, My_Tips_Score, Match_Lag_1, Match_Lag_2, Match_Score_1, Match_Score_2, Match_Odds_1, Match_Odds_x, Match_Odds_2, cast(round(My_Tips_Score ,2) as char(12)) as rounded From My_Tips Inner Join Matcher On Match_ID=My_Tips_MatchID Where My_Tips_Owner="& Session("UserID") &" And My_Tips_Community="& showcom &" And Matcher.Match_Score_1<>'' And My_Tips_Lag_1<>'' And TO_DAYS(NOW()) - TO_DAYS(Matcher.Match_Tid) <= 7")
LarsGMedlem sedan dec. 200012 464 inlägg
#10

Då verkar det som om cast inte finns med i den version du använder. Vad händer om du tar bort den delen och bara använder round?

aleborgMedlem sedan jan. 20013 341 inlägg
#11

då försvinner decimalerna helt!
Det är senaste versionen av MySQL

aleborgMedlem sedan jan. 20013 341 inlägg
#12

The CAST() and CONVERT() functions were added in MySQL 4.0.2.

Kör med den gamla "stabila" releasen tills dess att 4:an är rekommenderad att använda!

LarsGMedlem sedan dec. 200012 464 inlägg
#13

Tyvärr, så har jag inget mer att föreslå.

aleborgMedlem sedan jan. 20013 341 inlägg
#14

tack iaf, någon annan?

aleborgMedlem sedan jan. 20013 341 inlägg
#15

Ska inte ROUND fungera så att man får fram en avrundning till närmsta tal, och om det anges till decimal?

Provade på en select där jag vet att det skulle uppstå ett antal decimaler, ville få ner det till 2 decimaler:

Select avg(ROUND(My_Tips_Score,2))

provade även:

Select ROUND(avg(My_Tips_Score),2)

Men jag får bara fram heltal! :(

My_Tips_Score är av typen decimal

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)