473,414 Members | 1,775 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,414 software developers and data experts.

vb.net 2003 rounding decimal value question

I am using vb.net 2003 professional and I get the following results
when using the round method:

dim Amount as decimal = 180.255
Amount = Amount.Round(Amount, 2)

Amount now contains 180.25. I need it to contain 180.26.

Any ideas?
Nov 20 '05 #1
4 7808
Cor
Hi Spebola,
It is strange,
dim Amount as decimal = 180.255
Amount = Amount.Round(Amount, 2) Amount now contains 180.25. I need it to contain 180.26.


I did try it and the result from me was 180.26, is there maybe a mouse on
your computer eating bits?

This is from MSDN
When d is exactly halfway between two rounded values, the result is the
rounded value that has an even digit in the far right decimal position. For
example, when rounded to two decimals, the value 2.345 becomes 2.34 and the
value 2.355 becomes 2.36. This process is known as rounding toward even, or
rounding to nearest.

Cor
Nov 20 '05 #2
sp*****@swbell.net (spebola) scripsit:
I am using vb.net 2003 professional and I get the following results
when using the round method:

dim Amount as decimal = 180.255
Amount = Amount.Round(Amount, 2)

Amount now contains 180.25. I need it to contain 180.26.

Any ideas?


This code works for me (Windows XP Professional, .NET 1.1):

\\\
Dim Amount As Decimal = 180.255D
Amount = Amount.Round(Amount, 2)
MsgBox(Amount.ToString())
///

Add 'Option Strict On' on top of your source file!

--
Herfried K. Wagner
MVP · VB Classic, VB.NET
<http://www.mvps.org/dotnet>
Nov 20 '05 #3
Hi Spebola,

I can not reproduce the problem,
My test code and result is as follows.
Module Module1
Sub Main()
Dim Amount As Decimal = 180.255
Amount = Amount.Round(Amount, 2)
Console.WriteLine(Amount)
End Sub
End Module
Output: 180.26

Did the problem persists with all number, such as , 180.177,180.173?
You may have a try to see if the problem is a common issue in your machine.
I will appricate the problem.
I look forward to hearing from you.

Regards,
Peter Huang
Microsoft Online Partner Support
Get Secure! www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
From: sp*****@swbell.net (spebola)
Newsgroups: microsoft.public.dotnet.languages.vb
Subject: vb.net 2003 rounding decimal value question
Date: 10 Oct 2003 09:32:51 -0700
Organization: http://groups.google.com
Lines: 9
Message-ID: <b8**************************@posting.google.com >
NNTP-Posting-Host: 65.68.122.33
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1065803571 25204 127.0.0.1 (10 Oct 2003 16:32:51 GMT)X-Complaints-To: gr**********@google.com
NNTP-Posting-Date: Fri, 10 Oct 2003 16:32:51 +0000 (UTC)
Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed 00.sul.t-online.de!t-onlin
e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!postnew s1.google.com!no
t-for-mailXref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.vb:145738
X-Tomcat-NG: microsoft.public.dotnet.languages.vb

I am using vb.net 2003 professional and I get the following results
when using the round method:

dim Amount as decimal = 180.255
Amount = Amount.Round(Amount, 2)

Amount now contains 180.25. I need it to contain 180.26.

Any ideas?


Nov 20 '05 #4
Hi Spebola,

This behavior has been stated in the msdn.
Decimal.Round Method
When d is exactly halfway between two rounded values, the result is the
rounded value that has an even digit in the far right decimal position. For
example, when rounded to two decimals, the value 2.345 becomes 2.34 and the
value 2.355 becomes 2.36. This process is known as rounding toward even, or
rounding to nearest.
http://msdn.microsoft.com/library/de...us/cpref/html/
frlrfSystemMathClassAbsTopic.asp

The behavior also exist in VB6.
189847 INFO: New String and Format Functions in Visual Basic 6.0
http://support.microsoft.com/?id=189847

You may refer to link below for more details about business rule.
http://www.uop.edu/cop/psychology/St.../Rounding.html
According to Hurlburt, 1994 pg. 12,the procedure for finding the last digit
of a
measure is called "Rounding".
Rule 3- To prevent rounding bias, if the remainder is exactly 5, then round
the
last digit to the closest even number.Thus the number 3.55 (rounded to 1
digit)
would be 3.6 (rounding up) and the number 6.450 would round to 6.4
(rounding
down)if rounding to 1 decimal.
See page 12 in Hurlburt, R. (1994) Comprehending Behavioral Statistics,
Brooks/Cole, Pacific Grove, CA.

This response contains a reference to a third-party World Wide Web site.
Microsoft is providing this information as a convenience to you. Microsoft
does not control these sites and has not tested any software or information
found on these sites; therefore, Microsoft cannot make any representations
regarding the quality, safety, or suitability of any software or
information found there. There are inherent dangers in the use of any
software found on the Internet, and Microsoft cautions you to make sure
that you completely understand the risk before retrieving any software from
the Internet.
Regards,
Peter Huang
Microsoft Online Partner Support
Get Secure! www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

--------------------
From: sp*****@swbell.net (spebola)
Newsgroups: microsoft.public.dotnet.languages.vb
Subject: vb.net 2003 rounding decimal value question
Date: 10 Oct 2003 09:32:51 -0700
Organization: http://groups.google.com
Lines: 9
Message-ID: <b8**************************@posting.google.com >
NNTP-Posting-Host: 65.68.122.33
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1065803571 25204 127.0.0.1 (10 Oct 2003 16:32:51 GMT)X-Complaints-To: gr**********@google.com
NNTP-Posting-Date: Fri, 10 Oct 2003 16:32:51 +0000 (UTC)
Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed 00.sul.t-online.de!t-onlin
e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!postnew s1.google.com!no
t-for-mailXref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.vb:145738
X-Tomcat-NG: microsoft.public.dotnet.languages.vb

I am using vb.net 2003 professional and I get the following results
when using the round method:

dim Amount as decimal = 180.255
Amount = Amount.Round(Amount, 2)

Amount now contains 180.25. I need it to contain 180.26.

Any ideas?


Nov 20 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.