C# calculate decimal -


i want calculate price doing simple sum. example:

float hourpay = 18.30 int minutesworked = 125  minutesworked \ 60 * hourpay = 38,124999999 

i got these values in c# function , running 2 problems:

private decimal calculateprice(int minutes) {     float test = minutes / 60 * setting.hourpay     return; } 

the problems are, test returns 36.6 not correct , rounded off 1 decimal.

i want correct answer parses decimal , rounds 2 decimals.

the problem starting dividing 2 integers, results in integer:

float test = minutes / 60; 

note test get's 2, because decimals cut off if 2 integers divided. calculation right:

2 * 18.3 = 36.6

test should 2.083.... solution cast integers floats first:

private decimal calculateprice(int minutes) {     float test = (float)minutes / 60.0f * setting.hourpay;     return; } 

then division not ignore decimals , result exprected. can leave out explicit cast of minutes:

float test = minutes / 60.0f * setting.hourpay; 

this valid long constant (60.0f) marked float, because integers divided floats implictly casted integers. however, first approach easier read.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -