We would like to build a community for Small Basic programmers of any age who like to code. Everyone from total beginner to guru is welcome. Click here to register and share your programming journey!


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What command should I use to make my program pause until the user presses a key?
#21
Hi Elzaimer,

Your problem is caused by using a "non-english" environment. This causes the output of a calculation
with a floating answer with a , (comma) in it. But if you reuse this figure in a calculation the comma is not accepted as a decimal sign but as a
string. So SommeDesEcartsALaMoyenne concatenates the answers.

A solution can be: if you use the LitDev extension by placing LDUtilities.CurrentCulture="en-US" as the first line.

Or you can do the calculation with integers by multiplying with 10000 and rounding. For the display multiply with 0.00001
[-] The following 3 users Like WhTurner's post:
  • Elzaimer, litdev, z-s
Reply
#22
(06-30-2024, 11:42 AM)litdev Wrote: In Small Basic, whether a variable is treated as number or array or string is context dependent.  The operator + works on all data types with precedence left to right.

Consider the following examples.

Code:
TextWindow.WriteLine(1+2)
TextWindow.WriteLine(1+2+"A")
TextWindow.WriteLine("A"+1+2)
TextWindow.WriteLine(Text.Append(1,2)+"A")

In your code I would also initialise SommeDesEcartsALaMoyenne to 0 before it is added to.  SB does assume variables are "" or 0 initially, but good practice to initialise something before you use it.  Also your SD calculation is unusual, usually it would be RootMeanSquare.

Thanks for these very usefull explanations.
I put the line "SommeDesEcartsALaMoyenne = 0" at the top of my program and now it works !
So we have to define the types of the variables by puting xxx = 0 or xxx = "" at the begining of the programs
okkkay !  [Image: biggrin.png]

(06-30-2024, 12:37 PM)WhTurner Wrote: Hi Elzaimer,

Your problem is caused by using a "non-english" environment. This causes the output of a calculation
with a floating answer with a , (comma) in it. But if you reuse this figure in a calculation the comma is not accepted as a decimal sign but as a
string.  So SommeDesEcartsALaMoyenne concatenates the answers.

A solution can be:  if you use the LitDev extension by placing    LDUtilities.CurrentCulture="en-US" as the first line.

Or you can do the calculation with integers by multiplying with  10000 and rounding. For the display multiply with 0.00001

I tried LitDev's solution which was easier for me, but your answer is very interesting.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)