QB64.org Forum

Active Forums => QB64 Discussion => Topic started by: Dimster on February 22, 2021, 11:58:39 am

Title: Adding a Decimal Value
Post by: Dimster on February 22, 2021, 11:58:39 am
I want to add a decimal value to a decimal value that was converted to a whole number. The method I'm using is similar to the accompanying code

Code: QB64: [Select]
  1. a = .1234567 * 100000
  2. b = a + .25
  3. c = .25
  4. d = a + c
  5. PRINT a; b; d

The result I want to achieve is 1234567.25. The resulting number is then sent to a sorting routine after which the .25 is subtracted and the 1234567 is revered back to .1234567
Title: Re: SOLVED - Adding a Decimal Value
Post by: Dimster on February 22, 2021, 12:40:09 pm
Sometimes I just amaze myself on how I can look at a  routine and see what I want to see and not see what is really there. My crucial variable was incorrectly dimensioned.
Title: Re: Adding a Decimal Value
Post by: AtomicSlaughter on February 25, 2021, 02:11:24 pm
You can try this if you need to print a decimal place to screen, but you will have to convert your number into a string first using
Code: QB64: [Select]
  1. a$ = STR$(variable)
first.


Code: QB64: [Select]
  1. INPUT "enter a number", a$
  2. Numeric_Decimal (a$)
  3.  
  4. SUB Numeric_Decimal (a$)
  5.  
  6.     l = LEN(a$)
  7.     penny$ = RIGHT$(a$, 2)
  8.     IF LEN(LTRIM$(penny$)) = 1 THEN
  9.         pound$ = "0"
  10.         penny$ = "0" + LTRIM$(penny$)
  11.         conv$ = pound$ + "." + penny$
  12.         a$ = conv$
  13.     ELSE
  14.         pound$ = LEFT$(a$, (l - 2))
  15.         conv$ = pound$ + "." + penny$
  16.         a$ = conv$
  17.     END IF
  18.     IF LEN(conv$) = 3 THEN a$ = "0" + conv$
  19.