Gå til innhold

problem med desimaler


Anbefalte innlegg

Skrevet

Noen som vet hvorfor:

<?php
$tall = 12.10

print $tall;
?>

 

...blir 12.1? Og isåfal hvordan får jeg det til å bli 12.10? PS uten å legge til en ekstra 0 bak!

Videoannonse
Annonse
Skrevet

ja, men casen er at det legger til en ekstra null og det kan jeg ikke bruke! Noen som vet om en funksjon som kan gjøre om 11.10 til en streng?

Skrevet (endret)

Hvis du bruker den funksjonen phanti nevnte her så kan du jo bare dele opp tallet med arrays. Altså at du deller opp tallet slik at du har et array som er før punktum/komma og etter. Så teller du antall tegn som er i arrayet etter punktum/komma.

 

Kan gi kode eksempel når jeg kommer hjem fra kjedelig bursdag.

 

Kan selvfølgelig hende at jeg er helt på bærtur her, men jeg prøvde:)

Endret av ThaMezzy
Skrevet

Skjønner tanken, men det vil ikke la seg løse, fordi dersom du gir en variabel tallverdien 12.10, så får den verdien 12.1. Bruker vi number_format(), så må vi vite antallet desimaler på forhånd.

 

Dersom vi bruker 2 desimaler som i dette tilfellet, så er det jo greit, da vet vi det, og vi trenger ikke telle noe aray.

 

Men jeg skjønner ikke hva som er problemet hans i første omgang. Bruk number_format() ved utskrifter. Variablene som inneholder tall "oppfører" seg jo alikevel som alle andre variabler (tanke på 'skjøting' med . osv)

Skrevet
Skjønner tanken, men det vil ikke la seg løse, fordi dersom du gir en variabel tallverdien 12.10, så får den verdien 12.1. Bruker vi number_format(), så må vi vite antallet desimaler på forhånd.

 

Dersom vi bruker 2 desimaler som i dette tilfellet, så er det jo greit, da vet vi det, og vi trenger ikke telle noe aray.

 

Men jeg skjønner ikke hva som er problemet hans i første omgang. Bruk number_format() ved utskrifter. Variablene som inneholder tall "oppfører" seg jo alikevel som alle andre variabler (tanke på 'skjøting' med . osv)

Det er riktig som du sier. Er enig i det. For å være helt ærlig så skjønner ejg ikke hvorfor man skal hente mer desimaler enn 2. Kommer jo ann på bruken, men i de fleste tilfeller vil jeg si at det holder med to desimaler.

Skrevet (endret)

det du spør om er meget enkelt:

 

$tall = 11.10;

$ny_var = "$tall";

echo gettype($ny_var);

 

vips.. du har gjort tallet ditt om til en streng

Endret av Torbjørn
Skrevet (endret)
..og han har fortsatt tallet 11.1 (med ett desimal), bare at det revolusjonerende nok er en string. Fortsatt uløst problem :(

hvorfor løste da ikke number_format eller sprintf ditt problem? de returnerer også strenger.

 

EDIT: ser at det ikke var ditt problem til å begynne med

Endret av Torbjørn
Skrevet (endret)
Noen som vet hvorfor:

<?php
$tall = 12.10

print $tall;
?>

 

...blir 12.1? Og isåfal hvordan får jeg det til å bli 12.10? PS uten å legge til en ekstra 0 bak!

$tall er aldri 12.10 i den koden du viser til her. $tall er hele tiden 12.1

 

for å lagre en streng, må du bruke "" eller ''

 

$tall = '12.10';

echo $tall; # viser 12.1

Endret av Torbjørn

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...