Results 1 to 3 of 3

Thread: questions about fractions

  1. #1
    Junior Member
    Join Date
    Jun 2011
    Location
    Belgium Beveren
    Posts
    16
    Rep Power
    14

    questions about fractions

    hi,

    I have 2 questions
    1)
    I give JD a value off : 2436116.31
    If I print JD it gives the correct value
    but if i print the fraction it gives : .310000000055879354

    2)
    If i give F the value of the fraction of JD
    I expected it wil be .31
    but it is .310000000055879354
    if i do math with than i have a problem

    How can i avoid this ?

    kind regards
    Attached Files Attached Files

  2. #2
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    57
    Posts
    8,777
    Rep Power
    10
    The reason is that all internal thinBasic numeric calculations are performed using EXTENDED numeric type, that has 18 digits of precision.
    When you call FRAC, it rounds the result of fit the precision of the EXTENDED data type.
    Then the EXTENDED result is assigned to your DOUBLE variable.

    Also when you PRINT a number thinBasic convert you numeric variable into an EXTENDED number before printing it.
    So your DOUBLE variable is OK internally but output must be controlled.
    I do not think there are problems in calculations unless you need to save/printl data somewhere. At that point you need to control the output using some rounding functions

    You can use ROUND function to return the number of decimals you need:
    
    '---Load Console Module
    Uses "Console"
    
    Dim JD As double
    Dim F As double
    
    JD = 2436116.31
    PrintL(jd & " = JD")
    PrintL(Round(Frac(JD), 6)  & " = frac(JD)") 
    PrintL
    F = Round(Frac(JD), 6)
    PrintL(F  & " = F" )
    
    PrintL "Press a key to end program"
    
    WaitKey
    
    Also STR$(...), TSTR$(...), FORMAT$(...) can be used to control number of decimals to output.

    Found something on Power Basic (the compiler I use to create thinBasic) forum regarding this:
    https://forum.powerbasic.com/forum/u...-in-powerbasic
    Last edited by ErosOlmi; 09-03-2017 at 07:52.
    www.thinbasic.com | www.thinbasic.com/community/ | help.thinbasic.com
    Windows 10 Pro for Workstations 64bit - 32 GB - Intel(R) Xeon(R) W-10855M CPU @ 2.80GHz - NVIDIA Quadro RTX 3000

  3. #3
    Junior Member
    Join Date
    Jun 2011
    Location
    Belgium Beveren
    Posts
    16
    Rep Power
    14
    thanks for the info Eros
    I did not know that converting to extend happens when printing it.
    Last edited by stapper; 11-03-2017 at 16:01.

Similar Threads

  1. O2 - some basic questions
    By ReneMiner in forum O2 JIT Compiler / Assembler / Oxygen project
    Replies: 34
    Last Post: 13-08-2013, 11:11
  2. three questions
    By christianssen in forum thinBasic General
    Replies: 6
    Last Post: 10-03-2010, 11:12
  3. A few more questions..
    By oldpapa49 in forum thinBasic General
    Replies: 12
    Last Post: 21-03-2009, 21:45
  4. CGI Module questions
    By ShadowEO in forum CGI and FastCGI
    Replies: 3
    Last Post: 14-03-2009, 05:39
  5. DT questions
    By Dave in forum DT (Date module)
    Replies: 9
    Last Post: 16-04-2008, 09:48

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •