On 12/04/08 22:29, Mikolaj Machowski wrote:
> Dnia Saturday 12 of April 2008, Tony Mechelynck napisał:
>> On 12/04/08 20:29, Mikolaj Machowski wrote:
>>> Dnia Saturday 12 of April 2008, Bram Moolenaar napisał:
>>>> Here is an update for the floating point patch.  The 'g' argument for
>>>> printf() was implemented and a few bug fixes.
>>>>
>>>> This is to be applied to the original source code, without the older
>>>> floating point patch.
>>> One thing:
>>> let a =&1.2
>>      echo a
>>      1.200000
>>      (a Float IIUC)
>
> 1,200000         " type Float
>
>>> let b = string(b)
>>      let b = string(a)
>>      echo b
>>      1.200000
>>      (a String IIUC)
>
> 1,200000         " type String
>
>>> let c = eval(b)
>
> E488, but something was done...
>
>>      echo c
>>      1200000
>>      (a String = '1' . '200000')
>
> 1               " type Number
>
> I get different results. I strongly suspect localization (pl_PL)
> ->  , instead of . as separator.
>
>> These are expected.
>
> String isn't really expected. With fully working "translation" (as with
> other data types) at the end should be Float.
>
>
> m.

I use C locale, where the decimal point is a period. Evaluating the 
string "2+2" gives the result 4, because the String has been evaluated 
as an expression. Similarly, evaluating the String "1.200000", which is 
also the string-representation of an expression, gives "1200000" which 
is the result of that expression -- a concatenated String. OTOH, 
eval("1,200000") gives an error "Trailing characters" because 1,200000 
cannot be seen as ONE expression -- i.e., "when we're finished parsing 
it, there's something left over", namely the comma and everything after it.

If you had used ":let c = str2float(b)" then (IIUC -- I didn't try) the 
result would have come out equal to a. In a "decimal comma" locale, 
eval('&' . b) wouldn't have worked, you would have had to first replace 
the comma by a dot.


Best regards,
Tony.
-- 
For some reason a glaze passes over people's faces when you say
"Canada".  Maybe we should invade South Dakota or something.
                -- Sandra Gotlieb, wife of the Canadian ambassador to
                   the U.S.

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui