Hi there,
I'm a complete novice on javascript and am trying to make a basic currency convertor as part of my college course.
I have the beginning sorted, but am struggling to get the code to output the answer.

Can any kind soul tell me where I'm going wrong?

// Aim; to imput an amount in £'s and output in $'s using an exchange rate of 1.78 //

var amountInPounds, amountInDollars, dollarRate;

document.write('Currency Conversion Application A' + '<BR><BR>');

dollarRate = 1.78;


amountInPounds = window.prompt('PLease enter your sterling amount' ,'');
amountinPounds = parsefloat(amountinPounds);
amountInDollars = amountinPounds * dollarRate;
amountinDollars = parsefloat(amountinDollars);
document.write('total is ' + amountinDollars + '<br>');

Any help gratefully appreciated!

Phil

Dani AI

Generated

Quick, practical notes for (and a nod to — the case‑sensitivity catch was spot on). The original converter mostly needed correct casing, but a few small robustness improvements make it reliable: always coerce and validate the prompt string before calculating, format the result to two decimal places or as a currency, and avoid using document.write after the page has loaded (it can overwrite the page). Also be aware that adding strings will concatenate, so convert inputs to numbers before summing — the same concatenation snag appears in the later array example of this thread.

A short checklist:

  • Coerce the prompt value to a number with Number() or parseFloat() (note: parseFloat parses a leading numeric portion; Number is stricter).
  • Guard against invalid input with Number.isFinite() or isNaN() and give a clear error if the entry isn’t numeric.
  • Format output with toFixed(2) or Intl.NumberFormat to show a currency symbol and two decimals.
  • Prefer creating/updating DOM nodes (e.g., textContent or insertAdjacentHTML) or an HTML form with an event listener instead of document.write.

Example pattern (keeps the code simple and different from the earlier snippets):

function convertPoundsToDollars() {
  var rate = 1.78;
  var raw = window.prompt('Enter sterling amount', '');
  if (!raw) { alert('No value entered'); return; }
  var cleaned = raw.replace(/[^0-9.\-]/g, ''); // strip currency symbols/commas
  var amount = Number(cleaned);
  if (!Number.isFinite(amount)) { alert('Please enter a valid number'); return; }
  var dollars = amount * rate;
  var formatted = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(dollars);
  var p = document.createElement('p'); p.textContent = 'Total is ' + formatted;
  document.body.appendChild(p);
}
convertPoundsToDollars();

Final tip: when moving beyond prompt/alert, use a small form with <input type="number" step="0.01"> and an event listener — that gives better validation and a friendlier UX as the program grows.

Recommended Answers

All 11 Replies

Member Avatar for Member #25895

var amountInPounds, amountInDollars, dollarRate;
amountinPounds = parsefloat(amountinPounds);
amountInDollars = amountinPounds * dollarRate;
amountinDollars = parsefloat(amountinDollars);
document.write('total is ' + amountinDollars + '<br>');

Hello Mr. Woo.

I would just like to bring to your attention the suspect:) lines of code above. (Very simple but effective logic by the way! :cool: ) Keep in mind that Javascript is case sensitive so parseFloat() and parsefloat() are two different animals.:) As is the case with 'amountinPounds' and 'amountInPounds'.

Here is the corrected code back-at-ya:

var amountInPounds, amountInDollars, dollarRate;

document.write('Currency Conversion Application A' + '<BR><BR>');

dollarRate = 1.78;
amountInPounds = window.prompt('PLease enter your sterling amount' ,'');
amountInPounds = parseFloat(amountInPounds);
amountInDollars = amountInPounds * dollarRate;
amountInDollars = parseFloat(amountInDollars);
document.write('total is ' + amountInDollars + '<br>');

Many thanks for the reply!
With your help I'm getting the hang of it slowly as well as trying to be more precise with the spelling etc

best wishes

Well I'm back again after hitting another stumbling block.
This time I'm trying to input 4 values which the program will display before outputting as a total.

So far I have managed to get it to prompt for & display the values, but instead of giving a total it displays each individual value.

I'm close, but can't see the error.......any idea's ??

<HTML>
<HEAD>
<TITLE>Electric Bills
</TITLE>
<SCRIPT >

/* Program to read in a known number of data items and store them in an array */

var paymentArray = new Array (4);
var total;

document.write('Array program to display a customers four quarterly bills to an Electricity company & show the total due');

total = 0

for (var quarter = 0; quarter < paymentArray.length; quarter = quarter + 1)
{
    paymentArray[quarter] = window.prompt('Enter payment value','')

}; 
document.write('<BR>' + '<BR>');
document.write('Confirmation of amounts payable' + '<BR>' + '<BR>');


for (var quarter = 0; quarter < paymentArray.length; quarter = quarter + 1)
{
    document.write(paymentArray[quarter] + '<BR>')

    total = total + paymentArray[quarter]
    total = parseFloat(total)    
}
document.write('total amount paid is ' + total + '<br>')

</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Member Avatar for Member #25895

I'm close, but can't see the error.......any idea's ??

Boy do I know how you feel :!: You were very close! Remember this about Javascript code: the '+' operator acts as both an agent to add numbers and concatenate strings. ;) The latter, concatenation of strings, is what was happening in your code. Notice the two changes that I made to make it work:

/* Program to read in a known number of data items and store them in an array */

var paymentArray = new Array (4);
var total = new Number;

document.write('Array program to display a customers four quarterly bills to an Electricity company & show the total due');

total = 0

for (var quarter = 0; quarter < paymentArray.length; quarter = quarter + 1)
{
paymentArray[quarter] = window.prompt('Enter payment value','')

}; 
document.write('<BR>' + '<BR>');
document.write('Confirmation of amounts payable' + '<BR>' + '<BR>');


for (var quarter = 0; quarter < paymentArray.length; quarter = quarter + 1)
{
document.write(paymentArray[quarter] + '<BR>')

total = total + Number(paymentArray[quarter])
total = parseFloat(total) 
}
document.write('total amount paid is ' + total + '<br>')

You are definitely well on your way. :)

Many thanks.
It really is tricky, even when I copied the changes over I wrote 'number' with a small 'n' and it had a wobbly, I wish it wasn't so case sensitive!

I'm working on a Function Library now and some string things so watch this space....something tells me ....... 'I'll be back' :lol:

Well, as expected I'm back...the only surprise is it took me so long!

I'm trying to make a little program which takes a string, doubles any vowels, returning the string with all the vowels doubled in an alert box.
Sadly it has me baffled........

The program is supposed to make use of a function called 'doublevowels' that I made earlier (although I am rather dubious whether that is correct as well!) & imports it from a function library.

So here's where I'm at;

<HTML>
<HEAD>
<TITLE>vowels
</TITLE>
<SCRIPT SRC = "stringLibrary.js"> </SCRIPT>
<SCRIPT >


Function doublevowels(aString)
var answer;


answer = '';


for (var position = 0; position < aString.length; position = position +1)
{
(doublevowels('string goes here'))
}


return answer
window.confirm(+ answer + '<br>')



</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

Any pointers about what else I need and where will be gratefully appreciated!

All sorted! :cheesy:

Member Avatar for Member #25895

All sorted! :cheesy:

I'm glad you've done it!! Sorry I didn't have time to assist this time. :sad:

However, it seems as though you have graduated! :cool:

All sorted! :cheesy:

perhaps Mr Woo u would be so kind as to share as to how you got it sorted :)

wish i had thought to ask the answers to my open uni m150 tma in here

wish i had thought to ask the answers to my open uni m150 tma in here

Well like me it feels a million times better to actually get it done by yourself plus tutors arent stupid I`m sure they are fully aware of forums like these so not worth the risk.
Interesting tho

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.