Hi Hans,
Your code runs perfectly, thanks. However, if I replace % with
\letterpercent, my code does not run

\ctxlua{print(string.format("\letterpercent g",Binomial(100,60,0.25)))}

Thank you
Fabrice

2018-01-14 13:58 GMT+01:00 Hans Hagen <pra...@wxs.nl>:

> On 1/14/2018 1:13 PM, Joseph Canedo wrote:
>
>> Hi Fabrice,
>>
>> string.format behaves more or less as C printf. You probably need to
>> specify %.4g in 1st argument.
>>
>> Hope this helps
>>
>> Best
>>
>> Joseph
>>
>> *De : *Fabrice Couvreur <mailto:fabrice1.couvr...@gmail.com>
>> *Envoyé le :*dimanche 14 janvier 2018 13:05
>> *À : *mailing list for ConTeXt users <mailto:ntg-context@ntg.nl>
>> *Objet :*[NTG-context] Problem with string.format (Lua)
>>
>> Hello,
>> I start with Lua and I try to display my result with 4 decimal places
>> without success.
>> Thank you
>> Fabrice
>>
>> \startluacode
>> function Binomial(n,k,p)
>>      if k > n then return nil end
>>      if k > n/2 then k = n - k end
>>
>>      numer, denom = 1, 1
>>      for i = 1, k do
>>          numer = numer * ( n - i + 1 )
>>          denom = denom * i
>>      end
>>      return (numer/denom) * p^k * (1-p)^(n-k)
>> end
>>
>> \stopluacode
>>
>> \starttext
>> \ctxlua{print(string.format("%g",Binomial(100,60,0.25)))}
>> \stoptext
>>
>
> the % should be \letterpercent
>
> btw, use locals for numer and denom
>
> you can also do this:
>
> \startluacode
>     function document.Binomial(n,k,p)
>         if k > n then
>             return nil
>         end
>         if k > n/2 then
>             k = n - k
>         end
>         local numer, denom = 1, 1
>         for i=1,k do
>             numer = numer * ( n - i + 1 )
>             denom = denom * i
>         end
>         context("%0.5g",(numer/denom) * p^k * (1-p)^(n-k))
>     end
> \stopluacode
>
> \starttext
>     \ctxlua{document.Binomial(100,60,0.25)}
> \stoptext
>
> in general
>
> context("format",....)
>
> is a bit more powerful than using format
>
>
>
>
> --
>
> -----------------------------------------------------------------
>                                           Hans Hagen | PRAGMA ADE
>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
> ____________________________________________________________
> _______________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/list
> info/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ____________________________________________________________
> _______________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to