-
Jan 11th, 2012, 02:47 AM
#1
Thread Starter
Frenzied Member
3 decimal places
I don't know how to start, How to show the value in the textbox in three decimal places... For example I have value 123.123456, I want it show 123.123
Thank you
-
Jan 11th, 2012, 03:02 AM
#2
Re: 3 decimal places
Look up the 'Format' function
-
Jan 11th, 2012, 03:36 AM
#3
Thread Starter
Frenzied Member
Re: 3 decimal places
Code:
Dim Nombor1 As Double
Dim Nombor2 As Double
Dim Jawapan As Double
Nombor1 = Val(txtNombor1.Text)
Nombor2 = Val(txtNombor2.Text)
Jawapan = Nombor1 * Nombor2
txtJawapan.Text = FormatNumber(Jawapan, 3)
I use formatnumber, What the difference?
Code:
txtJawapan.Text = Format(Jawapan, "#.000")
-
Jan 11th, 2012, 03:06 PM
#4
Frenzied Member
Re: 3 decimal places
if you want to see 3 times 0 after decimal .then you write the following way .so what you want to know ?.try the following . you will see yourself.
Code:
Option Explicit
Private Sub Command1_Click()
Dim x%
x = Val(Text1.Text)
MsgBox Format(x, "#.000")
End Sub
-
Jan 12th, 2012, 09:09 AM
#5
Thread Starter
Frenzied Member
Re: 3 decimal places
When I type the value such as 3 in the textbox, it show 3.000. Why? I just want three decimal places for the floating number I typed in the textbox.
-
Jan 12th, 2012, 07:59 PM
#6
Re: 3 decimal places
Originally Posted by matrik02
When I type the value such as 3 in the textbox, it show 3.000. Why? I just want three decimal places for the floating number I typed in the textbox.
Your question was already answered based on what you said.
Now, tell us what you actually want to see and on what control that you want the result to appear.
-
Jan 12th, 2012, 08:54 PM
#7
Re: 3 decimal places
Do not use DOUBLE if you want any kind of accuracy - it will loose digits!!!
-
Jan 13th, 2012, 11:05 AM
#8
-
Jan 13th, 2012, 11:07 AM
#9
Re: 3 decimal places
VB6 has the currency datatype - which is just a LONG datatype with an implied decimal point - it allows for 4 digits to the right of the decimal point...
Although it's been a few years since I've worked in VB6 solely...
-
Jan 13th, 2012, 11:19 AM
#10
Re: 3 decimal places
Just for information :
LONG datatype has not decimal places:
Holds signed 64-bit (8-byte) integers ranging in value from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18).
Use the Long data type to contain integer numbers that are too large to fit in the Integer data type.
JG
... If your problem is fixed don't forget to mark your threads as resolved using the Thread Tools menu ...
-
Jan 13th, 2012, 12:16 PM
#11
Re: 3 decimal places
It is quite easy to IMPLY a decimal point in a LONG integer - thus getting non-float accuracy. IMPLIED decimal points have been around since the big COBOL days of the 1950's.
VB6 does it with the CURRENCY datatype
Currency is a fixed-point data type, as opposed to thefloating-point Single. In other words, it is always accurate to a specificnumber of decimal places, four in this case. While the Single type canrepresent many more decimal places, these are not needed in Currencycalculations and, in fact, can introduce rounding errors. These errors aresmall but can have an effect on overall accuracy.
The Currency data type is actually an integer typeinternally. In use, it is scaled by a factor of 10,000 to give four digits tothe right of the decimal point. It permits up to 15 digits to the left of thedecimal point, resulting in a range of approximately -922,337,000,000,000 to+922,337,000,000,000. An individual type Currency variable takes up 8 bytes ofmemory, compared to 4 bytes for Single
Here's a function in JAVASCRIPT I wrote to do it in a browser - which has no DECIMAL or CURRENCY datatypes!
It all comes down to this simple line of code
intMoney = parseInt(strMoney.replace(".", ""), 10);
Code:
function parseMoney(strMoney) {
var intMoney = parseInt(0, 10);
var intDecimal = 0;
var intLength = 0;
if (strMoney.length != 0) {
strMoney = strMoney.replace(/,/g, "").replace("$", "");
intDecimal = strMoney.indexOf(".");
intLength = strMoney.length;
if (intDecimal == -1) {
strMoney = strMoney + ".00";
} else {
if ((intDecimal + 3) != intLength) {
if (intLength == (intDecimal + 1)) {
strMoney = strMoney + "00";
} else if (intLength == (intDecimal + 2)) {
strMoney = strMoney + "0";
} else {
strMoney = strMoney.substring(0, intDecimal + 3);
}
}
}
intMoney = parseInt(strMoney.replace(".", ""), 10);
}
return intMoney;
}
function parseCurrency(intMoney) {
var strMoney = "";
strMoney = String(intMoney);
var blnIsNeg = false;
if (strMoney.substring(0, 1) == "-") {
blnIsNeg = true;
strMoney = strMoney.substring(1, strMoney.length);
}
var intLength = strMoney.length;
if (intLength < 3) {
strMoney = ("000" + strMoney).substring(intLength, intLength + 3); //("00" + strMoney).substring(0, 2);
intLength = 3;
}
strMoney = ((blnIsNeg) ? "-" : "") + addCommas(strMoney.substring(0, intLength - 2)) + "." + strMoney.substring(intLength - 2);
return strMoney;
}
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|