Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > about rounding a number

Reply
Thread Tools

about rounding a number

 
 
Ricardo Garcia
Guest
Posts: n/a
 
      10-24-2004
hi, i have some file size in bytes, and i want to get it in KB or MB, with
one decimal digit,
for example:
1268777 -> 1.2 MB

now i can have 1.210000...
my question is how do you can round this number properly, if i use
Math.round(number), i only get 1 MB


Thanks


 
Reply With Quote
 
 
 
 
Evertjan.
Guest
Posts: n/a
 
      10-24-2004
Ricardo Garcia wrote on 24 okt 2004 in comp.lang.javascript:

> hi, i have some file size in bytes, and i want to get it in KB or MB,
> with one decimal digit,
> for example:
> 1268777 -> 1.2 MB
>
> now i can have 1.210000...
> my question is how do you can round this number properly, if i use
> Math.round(number), i only get 1 MB
>


n = 1268777 // Bytes
n = Math.round(n/100000)/10 // 1.3 MegaBytes

BUT, perhaps you really want:

n = 1268777 // Bytes
n = Math.round(n*10/1024/1024)/10 // 1.2 MegaBytes


--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress,
but let us keep the discussions in the newsgroup)

 
Reply With Quote
 
 
 
 
Dr John Stockton
Guest
Posts: n/a
 
      10-25-2004
JRS: In article <Xns958CE310B3517eejj99@194.109.133.29>, dated Sun, 24
Oct 2004 20:19:12, seen in news:comp.lang.javascript, Evertjan.
<(E-Mail Removed)> posted :
>Ricardo Garcia wrote on 24 okt 2004 in comp.lang.javascript:
>
>> hi, i have some file size in bytes, and i want to get it in KB or MB,
>> with one decimal digit,
>> for example:
>> 1268777 -> 1.2 MB
>>
>> now i can have 1.210000...
>> my question is how do you can round this number properly, if i use
>> Math.round(number), i only get 1 MB
>>

>
>n = 1268777 // Bytes
>n = Math.round(n/100000)/10 // 1.3 MegaBytes
>
>BUT, perhaps you really want:
>
>n = 1268777 // Bytes
>n = Math.round(n*10/1024/1024)/10 // 1.2 MegaBytes



Those round to a multiple of 0.1 (give or take the resolution of an IEEE
Double); but rounding to a given number of digits is another matter
entirely.

The OP's wording calls for 1 MB to be represented as the string 1.0 MB.

The OP needs to read the newsgroup FAQ (via below), in particular Sec.
4.6; the first link of that leads to a variety of rounding code,
originated by several authors.

However, the example given implies truncation, for which (at least in
MSIE4) a RegExp might be used :
x = "000001.98765".match(/.*\.\d/) // 000001.9
x = 000001.98765 ; x = String(x).match(/.*\.\d/) // 1.9
though something must be done to ensure a decimal point and sufficient
digits.
x = 000001.00 ; x = String(x).match(/.*\.\d/) || x+".0" // 1.0

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
 
Reply With Quote
 
Evertjan.
Guest
Posts: n/a
 
      10-25-2004
Dr John Stockton wrote on 25 okt 2004 in comp.lang.javascript:
> Those round to a multiple of 0.1 (give or take the resolution of an IEEE
> Double); but rounding to a given number of digits is another matter
> entirely.


I don't quite see that, John.

Rounding 3 to 4 decimals is simply 3, not 3.0000,
because rounding is a mathematical concept and does not involve the string
representation of the result.

> The OP's wording calls for 1 MB to be represented as the string 1.0 MB.


I agree, that is another view of the matter on hand entirely.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress,
but let us keep the discussions in the newsgroup)

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Formatting a number without rounding Thor W Hammer ASP .Net 2 11-22-2005 06:51 PM
Rounding to next highest number? NoKetch C Programming 7 12-15-2003 11:23 PM
Rounding a floating point number declared in "double" Sooha Park Lee C Programming 2 07-17-2003 07:09 PM
Rounding a floating point number declared in "double" Sooha Park Lee C Programming 2 07-16-2003 09:37 PM
prevent rounding with Number.floatValue() ? iksrazal Java 1 07-03-2003 07:02 PM



Advertisments