|
It looks to me liek the round function is working correctly
for example for three decimal places
1.2225
since the last digit is 5 the number is rounded up to 1.223
my understanding of round is that a number is rounded down if the digits past the rounding point is 00 <= digits < 50
and rounded up if the digits past the rounding point is 50 <= digits < 100
Steve
|
|
|
|
|
You are missing the point. Notice the value 1,22222 that seems to be rounded differently from the others.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
Yeah actually single(float) and double are working the same way, it's not precise, because it's floating-point numbers representation. So it's a lot better and precise to use fixed-point number representation = Decimal in .Net
-- Everything is possible, even the impossible! ^_^
|
|
|
|
|
Use integer math with normalized integers and there is no problem.
Added bonus - it's a gazillion time faster than floating point math.
Divide by 10^5 before displaying to humans.
CICCIOLO69 wrote: In my application I must use five decimal digits and this round method.
Teacher evidently wants you to think a little, knowing the problem exists.
Gary
|
|
|
|
|
The Round method does not use what most of the community expects the Round method to use with regards to its function. The reason being is because the Round method rounds to the nearest even integer, in a link following you will see it is termed: the bankers method. The Round method has two options: MidpointRounding.ToEven or MidpointRounding.AwayFromZero. Neither of these is exactly what a user may want to see. You may find a better here[^], at this URL (found by google) their is a custom function that should round based on what most of the community expects. I have no idea why Microsoft chose non-standard forms of the Round function.
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
i have a web application that uses role/membership provider.i design the menu according to dep/role like
HelpDesk Account Stock Admin
enqury daybook jobbin createuser
appiontment balance mandate removeuser
caution updateuser
setup info
at present i can only a sign role base only. that is somebody in helpdesk will use only the submenu under hlpdesk.
i can also make sombody to be multiple role.
question
1 how can be able to deny a person in account for example access to balance submenu. that assign access on pages basis
2 load menu base on user right
any suggestion will be appriciated
|
|
|
|
|
Assuming your are using ASP.NET and your user permissions are stored in a database table, you would need to add your menu control with no options to your webpage/usercontrol and then in the Page.Load event add the options to the menu in accordance with your user's permissions, but only if IsPostBack = False
Steve Jowett
-------------------------
It is offen dangerous to try and see someone else's point of view, without proper training. Douglas Adams (Mostly Harmless)
|
|
|
|
|
i have use that aporoch of form load . is there a better approach
|
|
|
|
|
I am designing an application that will be able to read and write XML files. The XML Files use XML formatting with a Document Type Definition.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scheme SYSTEM "scheme.dtd">
<scheme date="20060312">
<title>Example Scheme</title>
<description>This is an example scheme</description>
<drawers>
<drawer id="d1" label="Drawer 1"/>
<drawer id="d2" label="Drawer 2"/>
<drawer id="d3" label="Drawer 3"/>
<drawer id="d4" label="Drawer 4"/>
<drawer id="d5" label="Drawer 5"/>
<drawer id="d6" label="Drawer 6"/>
<drawer id="d7" label="Drawer 7"/>
<drawer id="d8" label="Drawer 8"/>
</drawers>
</scheme>
I haven't ever worked with XML in VB.. (Either VB6 or .NET)
I am using VB.NET 2005.
I need to be able to read the attributes into text boxes dynamically.
The number of Drawers is Dynamic so it could be anything from 1 to 1000.
Each row would need to contain the ID and Label. Sort of like a grid view.
Does anyone have any pointers on where I should start? I can load the XML file and show it in a treeview or a single textbox, but I cannot seem to figure out how to pull the attributes only. I know the XML file is strange since it uses no Text between brackets, just attributes inside the brackets.
Thanks,
Andrew Streetman
|
|
|
|
|
I would normally treat the XML as a datatable, even to the point where I would create the initial data in a datatable by adding columns and rows and then write it out using dataset.writexml(). This would then allow you to use the standard binding methods. Additional benifit, if you ever decide to go to a database you already have the schema.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi
I have a text file which has thousands of records, I am opening it and populating it in dataset and then binding to a binding source. Then I am supposed to find specific item in specific column. In my scenario, I have to search thousands of strings within thousands of records in one routine. Currently I am using:
BindingSource1.Find("ColName","String")
Basically it is not taking much time but when it comes to thousands of records then it is taking approx 1 hour for one complete routine. (Some inside processing is also there but if records are lesser, I mean around 4,000 then it doesn't take much time but when it comes to 20,000 records then it just take me to the HELL and the PC is also at its highest, nothing else can be done however I am using multi-threading.)
What I basically want to know is that is there any way to search specific strings in a more powerful way to allow me better processing.
Any help will be highly appreciated.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
So first you loop through all the strings without looking for the string, then you do it again just to find the string? Doesn't that sound like a waste of time?
Skip the DataSet and the BindingSource, just read the file and look for the string.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
Well, thanks for the reply.
But what I have to do is find a 20 char max string in a 20 char max field and then replace another field's data if matched and you are suggesting me to search 20 char max string in a 2000 char or more per record.
Does that sound waste of time or mine?
PS please first look at my original question, I think I was clear enough to give you the idea that why I need to search 20K records for one string although I have to search 20K strings within those 20K records continuously.
BTW I hope you got the idea on which I have to work so hopefully you can help me to solve the problem.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
I got the impression that you only did search once, that's why I said that you should search the data directly.
If you want to search the data several times, you should use a dictionary. Finding the key in a dictionary is an operation that is close to O(1), i.e. it takes about the same time regardless if you have 100 items or 100000 items.
If you need to keep the data in the DataTable, you can set up a dictionary to use as index, i.e. use the column value as key, and the row reference or row index as value.
If you need to search different columns, you would need one dictionary per column.
Example creating an index dictionary for a table column:
Dim idx as New Dictionary(Of string, DataRow)(dataTable.Rows.Count);
For Each row As DataRow in dataTable
idx.Add(row("SomeColumn").ToString(), row)
Next
Once the index is set up, you can find a row instantly:
Dim r As DataRow = idx.Item("Joshua")
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
Thanks for the reply. I will check it now.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
Hi
Thanks a lot for the great trick. It is going like a fire now.
Warm Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
If your bindingsource is a datatable then use a dataview and dynamically filter the view. I find this works OK but I would NEVER try and display 20k records.
Why are you trying to locate 1 record in 20k in the UI. Isn't that what databases are for?
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Thanks for the reply. I will try using dataview though I have no idea about it.
BTW all process is in Background routine which doesn't have any UI, I have to search 20K records individually within another 20K records and apply some functions where data found. So, it needs to be much faster than currently is.
Hope someone might have more dynamic idea.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
If your data is stored in a database then that is where you need to do the processing. You should not be manipulating 20k records outside a database. If you are not using a database you have a design issue!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Well dear, it is not a design issue but it is the customer demand, I am supposed to process various files which are generated by several other programs (of course I didn't develop them) so in processing those files, I have to keep the format intact without any changes.
Personally I also prefer database or XML files, it is so easy to manage XML files if data is not that huge.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
Then I would look at some other options. Just because you have to retain the format does not mean you can't deal with it smarter in your app, you should be able to return the end result to the format required, does not limit your choices of processing. It would of course depend on your requirements but I would of thought using a bindingsource as your processing vehicle to be one of the slowest options!
Can't you read the file into a decent container (table or xml ) do your processing and then write it out.
The customer is NOT always right, and if they insist then they must be aware of the cost, then they can make the decision to ware the (time) cost or allow you to suggest a better option.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Well, I would suggest you to plz review my first post where I have mentioned already that I m using BindingSource through populating the text data into table/dataset. As per my thinking I found the binding source object more useful than working through the usual datasets. But to populate xml file from text file and then process the records and then again transfer all the records to the format seems ugly to me.
Well, no personal offense plz, but I personally like the BindingSource component, in some ways it makes the life easier however everyone has there own viewpoint. May be later on I think the same about BindingSource as you think or it might be vice-versa.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
No no no, you missed the point, your bindingsource is taking 1 hr+ to complete the process when there are a large number of records. My original suggestion was to use a dataview. I have never used the bindingsource so have no opinion of it as a tool. The only issue I have is that it is another layer of abstraction over your data and you have a speed issue.
MAP Tiger wrote: seems ugly to me
Got to agree with you there, I would have thought a datatable/view would be faster than XML. Have you use a Dataview with rowfilter and what is the performance like.
As for personal, how can a technical discussion be personal (except for preferences), the goal is to get the best solution, I don't give a rats who suggests it and I may not be right but I am happy to supply them (hopefully useful).
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Well, actually in the current scenario (in which I am currently working) and my formal experience with BindingSource component were matching but of course before the current project I have never come across with this heavy searching so I never knew the slowness of BindingSource.Find method.
Although now I am using dictionary object for it and believe me I am so happy, the same work is now processed in just 6 to 8 mins instead 1.30 hrs. So I am much happy now
As far as DataView component is concerned, I never came across it. I would be checking it though to let it be considered in future projects.
Regards,
MAP Tiger
Tiger Softwares
Software Designer and Developer
VB.NET, ASP.NET, VFP
|
|
|
|
|
Dealing with threading always gets my raveled in trying to unravel the logic of threading.
Here is what I am doing. I am accessing a database all throughout my code. At the beginning I save my connection string in a variable.
When I get data from a Com port it creates a separate thread. That I want to initiate a database lookup but don't find anything in the variable, probably because it was created on a different thread. I think I need to invoke but am not clear how.
Here is another example that I solved with an invole
I wanted to call: TextChange(stringCom) in this same new thread.
To solve it I wrote (or got help to write from CP) this code and it worked.
Sub TextChange(ByVal Str As String)
If batch.txtboxWeight.InvokeRequired Then
Dim d As New TextChangeDelegate(AddressOf TextChange)
Me.Invoke(d, Str)
Else
batch.txtboxWeight.Text = Str
End If
End Sub
But, this time I just want to call a sub and get the saved variable.
When I code
Dim connection As New SqlConnection(Splash.cust.getconnstr)
Spash.cust.getconnstr is null.
How can this be fixed?
|
|
|
|