BoundField double show as many decimal places as needed - asp.net

I have a double variable assigned to a boundfield in a gridview. There will only ever be a max of 5 decimal places.
The boundfield is formatting the display to a scientific value. I'm assuming because it would default to a general format which gives the most compact of either fixed-point or scientific notation (https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring%28v=vs.110%29.aspx)
How can i format the number to show only as many decimal places as needed, up to 5. And do not show scientfic notation?
i.e.
0.00002 is currently showing as 2E-05, but I would like it to show as 0.00002.
0.002 should show as that, and not 0.00200.
1 should show that, and not 1.00000. etc.
So a format such as {0:N5} would not work. {0:N} defaults to 2 decimal places, and so would not work either.
Thanks for any help.

Thanks for the advice #David W
I ended up working it out anyhow.
Although I couldn't find any documentation on it, you can give it proper custom formats.
Therefore, the following solved my issue;
<asp:BoundField DataField="theField" DataFormatString="{0:0.#####}" />

Related

How to format numbers in List&Label (by Combit) as power notation?

I'm using List & Label to display results on a report (floats) and I don't want them to be displayed by large numbers of decimal places like:
0.00005850
but like:
5,85e-05
I would be glad if someone had a hint for me :-) I already tried out the number format settings but nothing suiting there. Excel does this automatically, but is there a way in List&Label at all?
For me, the scientific exponential format works nicely - have you tried this setting?

How to Remove zeros after decimal points while using Round function in RDLC Reports?

I am Using RDLC Expression for rounding of my data to 4 decimals. but if i use 'Round' function it will show zeros after decimal point if the data has no decimal values.
Ex: If my value is 1 it shows 1.0000.
How to remove zeros?
My Expression: =Round(CDec(Fields!ExchangeRate.Value),4)
I need number without decimal point as whole number, if it has decimal values then it should display with decimal values.
Thanks in Advance.
=Format(CDec(Fields!ExchangeRate.Value),"#.####")
Above Expression Works fine. Thank You.
Simply try this...it works for me.
you can use the Format property of the textbox as
1- right click the textbox
2- click number
3- select Number from the category
4- set Decimal Places to 0
hope it will help you
regards

VBA remove formula and leave original value

I have a spreadsheet called "MTM Lookup", this is downloaded from a specific site, in column D of this spreadsheet are values, but these values have a formula attached to them. The formula rounds these values to 0. The formulas don't round on a specific cell. They look like this =ROUND(35370.6708773751,0) or =ROUND(48368.0427161566,0). I need the values to come through with all the decimals or rounded to 10 decimals but cannot get this to happen, I can remove the formula and leave the value but it is rounded to zero. Please could anyone assist with some simple vba to either remove the =round(,0) or replace the 0 to 10 ie round(x,10).
I don't see any problem in the formula you provided.
When I put
=ROUND(35370.6708773751,0)
to a cell, I correctly see 35371 in the cell.
There are, however, two things in play here.
Formula
Cell Format
For example, when I enter the following value to the cell:
=ROUND(35370.6708773751,10)
I do see 35370.67088 as a result (after rounding to 10 places, cell format rounds it again to 5 decimal places)
I don't know why entering the value without any formula shows you 0, but this leads me to the same suspscion, i. e. that the problem is in the cell format.
You can check it by right clicking on the cell > Format Cells (in office 2010 at least) or programatically, using the following, for example:
sheets("MTM Lookup").range("A:1").numberformat = "0.0000000000"
Hope that it helps.

Weird behaviour on Numeric Stepper decimals

I am making an editor for a field with numbers. I tried a text field, but since it's a Number datatype coming in, it didn't go smoothly -- despite recasting strings as numbers etc.. it kept giving me NaN as the value. So I decided it would be best to go with a numeric stepper.
When I initially loaded it up it would drop all my decimals and only display my numbers as integers. I changed the stepIncrement to 0.1 and now it does show the decimals (a weird requirement imo).. but when I step up it occasionally gives me a value like '17.700000000000003' when I would expect 17.7. All of the numbers in my data have a single decimal place. I know I can write a dataformatter, but it seems like it shouldn't be necessary in this situation.
Is there another way I could deal with this?
You've stumbled upon the compromise of trying to represent decimal numbers in floating point binary formats like IEEE 754. Not all decimal numbers can be exactly represented. You can read up on this issue in great detail here:
http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding
You can use Number.toFixed(fractionDigits:uint) to display to an arbitrary number of decimal places.
You can use the valueFormatFunction which takes the numeric value and formats it to a string. You will need to set explicit widths on your numeric steppers to make they fit though.
in your MXML
<s:NumericStepper valueFormatFunction="stepperFormatter"/>
in your script
protected function stepperFormatter(newValue:Number):String
{
return Math.ceil(newValue).toString()
}

show decimal or double with zeros

i get price values from DB.
now whenever the price is perhaps 5, I want to show 5.00
if its 4.3 it should be 4.30.
how to convert that?
thanks
You can use the string format for decimal to apply this formatting.
YourDecimal.ToString("#,##0.00");
this should show 5.00, and 4.30.
Also it will show 1,234.56 groupings.
What data types do you use to store the price? It's a bad idea to store prices using floating point numbers because of precision issues. A fixed point number like a decimal is a better idea.
Once you're settled on a data type, you can use string formatting to display it correctly. See MSDN.
yourDecimal.ToString("N2") will also do the same
I never wrote a single line in Asp.net
but simple search in google gave me this :
https://web.archive.org/web/20210928015431/http://www.4guysfromrolla.com/aspfaqs/ShowFAQ.asp?FAQID=181
http://msdn.microsoft.com/en-us/library/dwhawy9k%28VS.71%29.aspx

Resources