Reputation: 55
Hi i have a number string which out puts as a 4 digit number ie. 2850 i'd like to make that number display as 2.8 please. Ive tried various %.1f etc here's what I have so far
set number 2850
puts [format "%01.1f" $number]
which outputs incorrectly as 2.0 could you please point me in the right direction.
Thankyou to Schelte Bron for his reply is it possible to combine the format and expression into one line of code please ?
set number 2850
set number1 [expr {double($number) / 1000}]
set number2 [format "%01.1f" $number1]
puts "$number2
so instead we would have something like
set number 2850
set number1 [expr {double($size) / 1000} -format "%01.1f $number]
puts $number1
Thanks in advance
Upvotes: 1
Views: 2403
Reputation: 5385
Assuming you mean to divide 2850 by 1000, it's not clear if you really want to round up to 2.9, or you want to round down to 2.8. Using format will round it up to 2.9 e.g.
set number [expr {2850 / 1000.0}]
puts [format "%.1f" $number]
Using floor will round it down to 2.8 e.g.
set number [expr {2850 / 100.0}]
puts [expr {floor($number) /10.0} ]
Upvotes: 1
Reputation: 137797
You can do it in one line of code, but the responsibilities of format
and expr
remain what they are:
set number2 [format "%01.1f" [expr {$number / 1000.0}]]
Upvotes: 0