0
Tips for replacing letters?
In my overdone calculator i've added tons of mathematic operators and constants etc. I can type in about ~35 letters, then it stops. When I use Math.sqrt(x) it uses a minumum of 12 letters. How do I hide the Math.sqrt part and replace it with a _/- instead?
16 Antworten
0
String.replace would probably be the easiest way to go for directly replacing characters.
0
Will the Math.PI/Math.Pow() or Math.sqrt still work?
0
Im not sure what youre trying to do exactly. Could you give me more info about your project, or preferably a link to some code?
0
I'm making a calculator that can calculate and use:
Pi
Eulers Constant
Log
Square Root
x^y (pow)
modulus (%)
use parantheses
assign values to x and y and then use them (not working yet, because the Enter button isnt working)
Division, multiplication, plus, minus
Delete single characters.
Reset the calculator.
Use the Ans function.
Calculate floats (decimals)
Round decimals to integers
And i'm trying to make so that it doesn't show the Math.Sqrt in the input window. I just want to see the _/- thingy and I want it to still be able to calculate Square Root.
It's a bit hard to show all code because I got 600+ lines of it.
0
Ok, what I need to know is how the user is entering the values (just typing?), and how is that calculation being done?
0
The user clicks on buttons. (I've assigned functions to all buttons that add the number/operator to the input field.) The calculation is being done by pressing the = button.
function Equal()
{
cal.result.value=eval(cal.in.value);
}
0
You could always swap back and forth between. My suggestion though would be to have an internal representation of the calculation instead of pulling directly from the input.
0
Any tips on how I would do that? I use 2 visible areas in the main calculator. (I got 3 things next to eachother; A big thing with advanced functions, the main calculator and some tips and notes.)
The 2 visible areas are: In and Result.
Should I add a hidden area somewhere for the main input and use slice() and replace for the "fancy" input?
0
I would just add a separate variable with the JS representation.
0
How? I'm a bad JS programmer. Started with JS ~2 weeks ago.
Code for the Math.sqrt input (JS):
function Sqrt()
{
cal.in.value+="Math.sqrt(";
}
//Note: The right paranthese isn't there because the user has to input a value.
HTML:
<input type="button" class="button" onclick="Sqrt()" value="_/-">
<--Note: I use the real Square Root sign in the calculator.
0
You just need something like
var expression = ""
Then when, say, the user clicks square root, you concatenate math.sqrt to expression, but add the symbol to the display. Does that make sense?
0
It makes a little sense.
so:
I click _/- and then 9 and )
In the Expression input it shows Math.sqrt(9)
But in the visible input window it shows _/-.
And the code:?
function Sqrt()
{
cal.exp.value+="Math.sqrt(";
cal.in.value+="_/-(";
}
0
Yep!
0
Thank you! Adding this to my code now.
0
It's not working.
I added the new input, but it doesn't work. No buttons work. I've checked my JS and I haven't forgot to close any curly brackets.
<input type="text" readonly size="20" name="exp" placeholder="Test" hidden>
<input type="text" class="in" readonly size="20" name="in" placeholder="Input.>
Some JS functions:
function Random()
{
cal.in.value+="Math.random()";
cal.exp.value+="Random()";
}
function Comma()
{
cal.in.value+=",";
cal.exp.value+=",";
}
0
Well, personally I would use a variable instead of an input as I described. Aside from that, where is cal defined?