1. ## 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

2. ## Re: 3 decimal places

Look up the 'Format' function

3. ## 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")`

4. ## 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&#37;
x = Val(Text1.Text)
MsgBox Format(x, "#.000")
End Sub```

5. ## 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.

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.

Now, tell us what you actually want to see and on what control that you want the result to appear.

7. ## Re: 3 decimal places

Do not use DOUBLE if you want any kind of accuracy - it will loose digits!!!

8. ## Re: 3 decimal places

yes szlamany is true . just use long variable instead of double .

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...

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.

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
•

Featured