Hi Jim,
What brings this update:
Preferences and Settings Window:
- "Digits of Precission to Display" - slide indicator to minimum value (which is actually 9, not 8 - fix it). Now the maximum and minimum values are taken directly from settings.
If you play with slider, the slider is resized because of value label. The same thing is happening with "Debugging Speed" slider. I moved the values in left side, in the label area to avoid resizing sliders when user change values.
add "Use localized decimal point on floating point numbers" option. I find very difficult to explain to a kid to write programs using "." as decimal point and to use "," in any output or input. But in the same time I also think is a very good idea (when kid show a program to friends). So, user can now chose when to activate this feature.
sliders now show a nice tooltip when user drag the indicator or when hold the mouse pointer over.
"Digits of Precission"
I understand that "Digits of Precission" from settings refers to "Number of digits to print numbers" so I think that renaming this option in settings is a good idea to reflect the true meaning.
Reasons:
a) "Digits of Precission" != "Significant digits"
print 0.00000123456789123456789123456789 ## 0.000001234568 (Significant digits in result=8; digits after the decimal point=12)
b) "Digits of Precission" != "Digits after the decimal point"
print 123456.789123456789123456789 ## 123,456.789123 (Digits after the decimal point=6; total digits=12)
Assuming that, I found some inconsistencies in BASIC-256. I will use those settings:
Number of digits to print numbers: 12
Always show decimal point on floating point numbers: on
Locale: en_US
1) Printing almost the same number as integer and as floating point. By using separator "," the difference is annoying and can confuse the user:
print 1234567890.1 ## 1,234,567,890.1
print 1234567890 ## 1234567890
2) extra and useless ".0"
print 1000000000000000000000 ## 1e+21.0 (in the scientific notation the exponent is always an integer)
3) Because when we print numbers less than 0 we don't print those as ".nnnn" but like "0.nnnn", we must count also the "0"
print 0.00000123456789123456789123456789 ## 0.000001234568 (total 13 digits)
print 0.123456789123456789123456789 ## 0.123456789123 (total 13 digits)
print 1.23456789123456789123456789 ## 1.23456789123 (total 12 digits)
print 123456.789123456789123456789 ## 123,456.789123 (total 12 digits)
4) Printing almost the same number
print 1000000000000 ## 1,000,000,000,000.0 (digits printed 14)
print 1000000000001 ## 1e+12.0
5) Adding ".0" to numbers with already 12 significant digits
print 12345678912.3456789123456789 ## 12,345,678,912.3 (correct digits - 12)
print 123456789123.456789123456789 ## 123,456,789,123.0 (13 digits printed)
This update fix all those things.
And is faster (at least 10%).
And it looks good :)
Respectfully,
Florin Oprea
added to 1.99.99.71