"scientific notation"
[1/14] from: chalz:earthlink at: 8Jan2003 13:09
Errrm.
>> 1 / 100
== 1E2
I don't want that. I want decimal. Even todecimal doesn't give me a
decimal. I don't want to deal with E's. How?
Charles
[2/14] from: doug:vos:eds at: 8Jan2003 13:23
Try the function exp2dec (watch for wrapping)
>> exp2dec 1E2
== "0.01"
;

exp2dec: func [
{Converts a number with a negative exponent (Ex) to its decimal
bv equivalent. If the number must be converted, then a string will
be returned. Otherwise the number sent to the function, N, will
simply be returned.}
N [number!] "The exponential number to convert."
/local ret digit exp _getdecexp decnumbers lessthanzero absn
][
ret: N
lessthanzero: either (N < 0) [""][""]
_getdecexp: func [
num [number!]
/local shift _exp
][
shift: num
_exp: 1
while [shift < 0.1][
shift: shift * 10 ;shifts a number until the fit
_exp: _exp + 1
]
return _exp
]
absn: abs(N)
if (absn // 1 <> 0) [
exp: _getdecexp absn
if (exp > 1) [
ret: make string! 10
insert/dup ret "0" (exp  1) ;appends the zeros behind the decimal
insert ret (join lessthanzero "0.")
decnumbers: make string! 10
decnumbers: tostring absn
decnumbers: copy/part (find decnumbers "E") at decnumbers 1
decnumbers: rejoin parse decnumbers "."
foreach digit decnumbers [
append ret digit
]
]
]
return ret
]
;
[3/14] from: carl:cybercraft at: 9Jan2003 7:56
On 09Jan03, Charles wrote:
> Errrm.
>>> 1 / 100
> == 1E2
> I don't want that. I want decimal. Even todecimal doesn't give
> me a decimal. I don't want to deal with E's. How?
I get...
>> 1 / 10
== 0.1
>> 1 / 100
== 0.01
>> 1 / 1000
== 0.001
>> 1 / 10000
== 0.0001
>> 1 / 100000
== 1E5
There must be a setting you've changed to get an E at 1 / 10. How you
change it though I wouldn't know...

Carl Read
[4/14] from: anton:lexicon at: 9Jan2003 18:18
I get the same as Charles.
I'm on windows and I get scientific notation.
REBOL/View 1.2.8.3.1 3Aug2002
What versions are you guys running?
Anton.
[5/14] from: carl:cybercraft at: 9Jan2003 23:26
Just done some checks with View 1.2.1 on Amiga, Linux and Windows, and
the E at 1 / 100 only happens with Windows. That's none too
compatible, is it?
Carl.
On 09Jan03, Anton wrote:
> I get the same as Charles.
> I'm on windows and I get scientific notation.
<<quoted lines omitted: 21>>
>> 
>> Carl Read

Carl Read
[6/14] from: patrick:philipot:laposte at: 9Jan2003 12:25
Same for me, Windows 2000
>> 1 / 100
== 1E2
>> system/version
== 1.2.8.3.1
Patrick
[7/14] from: amicom::sonic::net at: 9Jan2003 8:20
This whole thing with Scientific Notation is related to the math libraries
on your system. AFAIR, Rebol does not have its own inbuilt math
libraries...it depends on the ones provided by the system (one of the few
things Rebol doesn't have its own inbuilt libraries for). I'd agree that
Windows is rather lame in using Scientific Notation after only two decimal
places, but that is an issue with the Windows math libraries, not Rebol.
Bohdan "Bo" Lechnowsky
Lechnowsky Technical Consulting
At 07:56 AM 1/9/03 +1300, you wrote:
[8/14] from: carl:cybercraft at: 10Jan2003 9:06
On 10Jan03, Bohdan or Rosemary Lechnowsky wrote:
> This whole thing with Scientific Notation is related to the math
> libraries on your system. AFAIR, Rebol does not have its own
<<quoted lines omitted: 3>>
> Scientific Notation after only two decimal places, but that is an
> issue with the Windows math libraries, not Rebol.
I'd say it's an issue with REBOL, if REBOL's supposed to be a
crossplatform language. I don't want to have consider which OS a
script will be running on when I'm writing it, or write workarounds
for known differences.
If REBOL for whatever reason can't have its own maths libraries,
couldn't it at least convert decimals to a consistant format when we
need to process them at the text level?
> At 07:56 AM 1/9/03 +1300, you wrote:
>> On 09Jan03, Charles wrote:
<<quoted lines omitted: 18>>
>> 
>> Carl Read

Carl Read
[9/14] from: amicom:sonic at: 9Jan2003 22:54
Carl,
Having Rebol convert the format of decimal numbers sounds like a good
idea. Perhaps submitting it to feedback will yield some future results!
Bohdan "Bo" Lechnowsky
Lechnowsky Technical Consulting
At 09:06 AM 1/10/03 +1300, you wrote:
[10/14] from: doug:vos:eds at: 10Jan2003 14:44
Has everyone who complained tried the function I provided that solves the
problem?
It seems to be a good work around for me, so I don't know what people are
still complaining about? Please help me understand...
Try the function exp2dec (watch for wrapping)
>> exp2dec 1E2
== "0.01"
;

exp2dec: func [
{Converts a number with a negative exponent (Ex) to its decimal
bv equivalent. If the number must be converted, then a string will
be returned. Otherwise the number sent to the function, N, will
simply be returned.}
N [number!] "The exponential number to convert."
/local ret digit exp _getdecexp decnumbers lessthanzero absn
][
ret: N
lessthanzero: either (N < 0) [""][""]
_getdecexp: func [
num [number!]
/local shift _exp
][
shift: num
_exp: 1
while [shift < 0.1][
shift: shift * 10 ;shifts a number until the fit
_exp: _exp + 1
]
return _exp
]
absn: abs(N)
if (absn // 1 <> 0) [
exp: _getdecexp absn
if (exp > 1) [
ret: make string! 10
insert/dup ret "0" (exp  1) ;appends the zeros behind the decimal
insert ret (join lessthanzero "0.")
decnumbers: make string! 10
decnumbers: tostring absn
decnumbers: copy/part (find decnumbers "E") at decnumbers 1
decnumbers: rejoin parse decnumbers "."
foreach digit decnumbers [
append ret digit
]
]
]
return ret
]
;
[11/14] from: chalz:earthlink at: 10Jan2003 15:20
My complaint is "Why?" Workarounds are NOT solutions. It introduces
unnecessary complexity. Not to mention that people who are after
ultraoptimized code will gripe because it takes extra time, memory and
resources to load an additional function. It's not an answer.
[12/14] from: nitschlists:netcologne at: 10Jan2003 23:23
if allways two decimal places is ok, you can use tomoney.
to get rid of the "$", use
next form tomoney 123.345
(eventually [copy next ..])
volker
Charles wrote:
[13/14] from: carl:cybercraft at: 11Jan2003 15:37
On 11Jan03, Vos, Doug wrote:
> Has everyone who complained tried the function I provided that
> solves the problem?
Just tried it on Windows, Amiga and Linux, and while it works as
stated on Windows, on Amiga and Linux it gives this error...
>> exp2dec 1E2
** Script Error: copy expected value argument of type: series port
bitset
** Where: exp2dec
** Near: decnumbers: copy/part (find decnumbers "E") at decnumbers
> It seems to be a good work around for me, so I don't know what
> people are still complaining about? Please help me understand...
Does the above help? (:
I'm assuming you only tried it on Windows, which shows the problem of
trying to write OS work arounds when you don't have all the OSs at
your fingertips to test your program on. With REBOL, crossplatform
issues need to be solved within REBOL itself, which means it's RT's
job.
This doesn't mean we shouldn't provide work arounds 'till RT get
around to fixing them of course, and I'm sure you can think of a fix
for your function, but a real fix needs to be somewhere deep inside
REBOL so we don't get these kinds of results...
On Windows...
>> 1E2
== 1E2
On Amiga and Linux (and many other OSs I assume)...
>> 1E2
== 0.01

Carl Read
[14/14] from: carl:cybercraft at: 11Jan2003 15:47
On 10Jan03, Bohdan or Rosemary Lechnowsky wrote:
> Carl,
> Having Rebol convert the format of decimal numbers sounds like a
> good idea. Perhaps submitting it to feedback will yield some future
> results!
Perhaps. Anyone know if a patch could be inserted at the mezzanine
level, or does it need to be in the natives?

Carl Read
Notes
 Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted