Getting the number of decimal places: Difference between revisions

Content added Content deleted
m (→‎{{header|Phix}}: added syntax colouring the hard way)
(Added Sidef)
Line 625: Line 625:
<pre>
<pre>
4
4
</pre>

=={{header|Sidef}}==
<lang ruby>func number_of_decimals(n, limit = 1e5) {
var prec = Num(Num!PREC)>>2
var prev = ''

n = Number(n) if !n.kind_of(Number)

loop {
var str = n.as_dec(prec)

if (prev == str) {
return (str.contains('.') ? str.substr(str.index('.')+1).len : 0)
}

prev = str
prec *= 2
return Inf if (prec > limit)
}
}

var list = [
9, 12.345, "12.3450", "12.345e53",
12.34555555555555555555, 0.1234567890987654321,
Num.pi, 1/3, 1.5**63
]

list.each {|n|
var c = number_of_decimals(n)
say "Number of decimals: #{'%3s' % c} Number: #{n}"
}</lang>

{{out}}
<pre>
Number of decimals: 0 Number: 9
Number of decimals: 3 Number: 12.345
Number of decimals: 3 Number: 12.3450
Number of decimals: 0 Number: 12.345e53
Number of decimals: 20 Number: 12.34555555555555555555
Number of decimals: 19 Number: 0.1234567890987654321
Number of decimals: 188 Number: 3.14159265358979323846264338327950288419716939938
Number of decimals: Inf Number: 0.333333333333333333333333333333333333333333333333
Number of decimals: 63 Number: 124093581919.6489476978273736503801880082242803382541751489
</pre>
</pre>