Bináris számmá átváltás tört résszel javascriptben?
Ez az eddigi forráskód és ugy kellene kibőviteni, hogy kiirja a tört részt is de nincs ötletem:
<html>
<head>
<title>átváltás</title>
<script language="javascript">
function szamol(a,b)
{
document.valto.eredmeny.value="";
x=parseInt(a);
y=parseInt(b);
var k=0;
//alert(x);
//alert(y);
do
{
z=x%y;
//alert(z);
document.valto.eredmeny.value=z+document.valto.eredmeny.value;
//alert(x);
x=Math.round((x/y)-0.5);
//alert(x);
}while(x!=0)
}
</script>
</head>
<body>
<form name="valto">
Melyik számot akarod átváltani?<br>
<input type="text" name="szam"><br>
hanyas számrendszerben számolunk?<br>
<input type="text" name="rendszer"><br>
<input type="button" value="számol" onclick="szamol(document.valto.szam.value,document.valto.rendszer.value)"><br>
Íme az eredmény:<br>
<input type="text" name="eredmeny">
</form>
</body>
</html>
Itt van rá egy video tutorial:
https://www.youtube.com/watch?v=QTjMOm73b6Y
<html>
<head>
<title>átváltás</title>
<script language="javascript">
function szamol(a, b)
{
document.valto.eredmeny.value = "";
var x = parseInt(a);
var y = parseInt(b);
var k = 0;
var z;
do
{
z = x % y;
document.valto.eredmeny.value = z + document.valto.eredmeny.value;
x = Math.round((x / y) - 0.5);
} while (x != 0);
document.valto.eredmeny.value += ".";
x = parseInt(a);
var v = Number(a);
var d = v - x;
var p = 100000000000000;
d = Math.round(d * p) / p;
z = d;
var i = 0;
do {
z = z * y;
document.valto.eredmeny.value += parseInt(z);
z = z - parseInt(z);
z = Math.round(z * p) / p;
i = i + 1;
} while ((i < 24) && (z != 0.0));
}
</script>
</head>
<body>
<form name="valto">
Melyik számot akarod átváltani?<br>
<input type="text" name="szam"><br>
hanyas számrendszerben számolunk?<br>
<input type="text" name="rendszer"><br>
<input type="button" value="számol" onclick="szamol(document.valto.szam.value, document.valto.rendszer.value)"><br>
Íme az eredmény:<br>
<input type="text" name="eredmeny">
</form>
</body>
</html>
Mondjuk ha már úgysem te csinálod, írhatod akár ezt is:
function szamol(a, b)
{
document.valto.eredmeny.value = (+a).toString(b);
}
A te kódodban van egy apró hiba, mégpedig hogy ha negatív számot írok be, akkor végtelen ciklusba kerül.
(Azért az érdekesen néz ki, hogy a szamol függvény nem csak visszaadja az eredményt, hanem helyette frissíti a kezelőfelületet. Szebb lenne ha a felületet nem a számolós függvény frissítené)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!