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
Printable View
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
Look up the 'Format' function
I use formatnumber, What the difference?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)
Code:txtJawapan.Text = Format(Jawapan, "#.000")
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.
:wave:Code:Option Explicit
Private Sub Command1_Click()
Dim x%
x = Val(Text1.Text)
MsgBox Format(x, "#.000")
End Sub
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.
Do not use DOUBLE if you want any kind of accuracy - it will loose digits!!!
yes szlamany is true . just use long variable instead of double .:(
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...
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.
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
Here's a function in JAVASCRIPT I wrote to do it in a browser - which has no DECIMAL or CURRENCY datatypes!Quote:
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
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;
}